1.效应器
Point Effector 2D: 点效应器。进入区域,吸引或排斥物体
Area Effector 2D: 区域效应器,可以用来做马里奥的管道移动效果
Surface Effector 2D :表面效应器。实现传送带效果
PlatForm Effector 2D:平台效应器。实现2D游戏里面的台阶效果
2.控制移动
// Update is called once per frame
void Update () {
if (Input.GetKey(KeyCode.A))
{
MoveLeft();
}
if (Input.GetKey(KeyCode.D))
{
MoveRight();
}
if (Input.GetKeyDown(KeyCode.Space))
{
Jump();
}
}
void MoveLeft()
{
var v = rgbd.velocity;
v.x = -movespeed;
rgbd.velocity = v;
//gameObject.GetComponent<Rigidbody2D>().AddForce(Vector2.left * movespeed, ForceMode2D.Force);
}
void MoveRight()
{
var v = rgbd.velocity;
v.x = movespeed;
rgbd.velocity = v;
//gameObject.GetComponent<Rigidbody2D>().AddForce(Vector2.right * movespeed, ForceMode2D.Force);
}
public void Jump()
{
if (isground)
{
gameObject.GetComponent<Rigidbody2D>().AddForce(Vector2.up * jumpspeed, ForceMode2D.Impulse);
isground = false;
}
}
3.敌人来回移动
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class laihui : MonoBehaviour {
public float movespeed=3.0f;
private Vector2 currentposition;
public float distnation=10.0f;
private int face = 1;
// Use this for initialization
void Start () {
currentposition = gameObject.transform.position;
}
// Update is called once per frame
void Update () {
if (face == 1)
{
gameObject.transform.Translate(Vector2.right * movespeed * Time.deltaTime);
}
if (face == 0)
{
gameObject.transform.Translate(Vector2.left * movespeed * Time.deltaTime);
}
if (gameObject.transform.position.x > currentposition.x+distnation)
{
face = 0;
}
if (gameObject.transform.position.x < currentposition.x)
{
face = 1;
}
}
}