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 = ; // Use this for initialization
void Start () {
currentposition = gameObject.transform.position;
} // Update is called once per frame
void Update () {
if (face == )
{
gameObject.transform.Translate(Vector2.right * movespeed * Time.deltaTime);
}
if (face == )
{
gameObject.transform.Translate(Vector2.left * movespeed * Time.deltaTime);
}
if (gameObject.transform.position.x > currentposition.x+distnation)
{
face = ;
}
if (gameObject.transform.position.x < currentposition.x)
{
face = ;
}
}
}
05-27 03:49