# Unity 2D 效应器与来回移动的实现

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;
}

void MoveRight()
{
var v = rgbd.velocity;
v.x = movespeed;
rgbd.velocity = v;
}

public void Jump()
{
if (isground)
{
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;
}
}
}

posted @ 2019-03-11 17:07  ComputerPlayerJs  阅读(1253)  评论(0编辑  收藏  举报