【转】u3d雷电代码可学习的地方

//左右移动的时候转动会转方向

void Update () {

        TurnLeft = false; //静止的时候是不转动的

        TurnRight = false;


        if (Input.GetKey(KeyCode.W)) //按住w前进  虽然很奇特的前进方法  不过可以借鉴

        {        

            Vector3 screenPos = Camera.mainCamera.WorldToScreenPoint(this.transform.position);

            //print(screenPos.y);

            if (Screen.height > screenPos.y)

                this.transform.Translate(Vector3.forward * Time.deltaTime * m_nMoveSpeed);

        }

        if (Input.GetKey(KeyCode.S))

        {

            Vector3 screenPos = Camera.mainCamera.WorldToScreenPoint(this.transform.position);

            if (0 < screenPos.y)

                this.transform.Translate(Vector3.forward * Time.deltaTime * -m_nMoveSpeed);

        }

        

        if (Input.GetKey(KeyCode.A))

        {

            Vector3 screenPos = Camera.mainCamera.WorldToScreenPoint(this.transform.position);

            if (0 < screenPos.x)

                this.transform.Translate(Vector3.left * Time.deltaTime * m_nMoveSpeed);

            //向左转

            if (CurRotation < RotateLimit)

            {

                print(CurRotation);

                CurRotation += RotateSpeed;

            }

            TurnLeft = true;

        }

        if (Input.GetKey(KeyCode.D))

        {

            Vector3 screenPos = Camera.mainCamera.WorldToScreenPoint(this.transform.position);

            if (Screen.width > screenPos.x)

                this.transform.Translate(Vector3.left * Time.deltaTime * -m_nMoveSpeed);

            //向右转

            if (CurRotation > -RotateLimit)

                CurRotation -= RotateSpeed;

            TurnRight = true;

        }

        //回归

        if (!TurnLeft && !TurnRight)

        {

            if (CurRotation > 0.0)

                CurRotation -=RotateSpeed;

            else if (CurRotation < 0)

                CurRotation +=RotateSpeed;

        }

        Quaternion rot = Quaternion.AngleAxis(CurRotation, new Vector3(0, 0, 1));

        m_Plane.rotation = rot;      

        //让相机和飞机一起以一定的速度前移

        this.transform.Translate(Vector3.forward * Time.deltaTime * m_nMoveSpeed);

        Camera.mainCamera.transform.Translate(Vector3.up * Time.deltaTime * m_nMoveSpeed);

    

    }


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值