其他分享
首页 > 其他分享> > unity 控制物体移动的三种方法之美

unity 控制物体移动的三种方法之美

作者:互联网

原文链接:https://blog.csdn.net/qq_42661974/article/details/86498434

可以使按照指令物体移动的方法
一、常规方法

//四个方向
        if (Input.GetKey(KeyCode.W))
        {
            transform.Translate(Vector3.forward*moveSpeed*Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.S))
        {
            transform.Translate(Vector3.back * moveSpeed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.A))
        {
            transform.Translate(Vector3.left * moveSpeed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.D))
        {
            transform.Translate(Vector3.right * moveSpeed * Time.deltaTime);
        }

二、使用unity自带的移动方式

float H = Input.GetAxis("Horizontal");
        float V = Input.GetAxis("Vertical");
        if (H!=0 || V!=0)
        {
            transform.Translate(new Vector3(H,0,V)*Time.deltaTime*moveSpeed,Space.World);
        }
        else
        {
           //没有移动
        }

三、通过刚体控制移动(必须添加刚体)

//通过刚体控制物体移动,需要添加刚体
        Vector3 moveForward = Vector3.zero;
        if (Input.GetKey(KeyCode.W))
        {
            moveForward.z += 1;
        }
        if (Input.GetKey(KeyCode.S))
        {
            moveForward.z += -1;
        }
        if (Input.GetKey(KeyCode.A))
        {
            moveForward.x += -1;
        }
        if (Input.GetKey(KeyCode.D))
        {
            moveForward.x += 1;
        }
        
        GetComponent<Rigidbody>().MovePosition(Quaternion.LookRotation(transform.forward) 
* moveForward * moveSpeed * Time.fixedDeltaTime + transform.position);

 

 

标签:transform,Vector3,之美,GetKey,unity,三种,Time,Input,KeyCode
来源: https://blog.csdn.net/weixin_44350205/article/details/100826233