Unity学习笔记:2D小飞机移动逻辑

飞机移动限制:到达左右边界禁止出界,上下移动超过边界 从另一端出现。

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

}

猜你喜欢

转载自blog.csdn.net/huanyu0127/article/details/105526130
今日推荐