飞机移动限制:到达左右边界禁止出界,上下移动超过边界 从另一端出现。
/// <summary>
/// 2d小飞机
/// </summary>
public class PlayerController : MonoBehaviour
{
private void Update()
{
float hor = Input.GetAxis("Horizontal");
float ver = Input.GetAxis("Vertical");
if (hor != 0 || ver != 0)
Movement(hor, ver);
}
public float moveSpeed = 10;
private void Movement(float hor,float ver)
{
hor *= moveSpeed * Time.deltaTime;
ver *= moveSpeed * Time.deltaTime;
//限制
Vector3 screentPos = Camera.main.WorldToScreenPoint(transform.position);
//上出 下进 下出 上进
if(screentPos.y>Screen.height)
screentPos.y=0;
if(screentPos.y<0)
screentPos.y=Screen.height;
//如果移动到最左边 并且 还想向左 或者 移动到最右边 并且 还想向右
if (screentPos.x <= 0 && hor < 0 || screentPos.x >= Screen.wide && hor >0)
ver = 0;//停
this.transform.Translate(hor, 0, ver);
}
}