Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
simplemove问题
Moon发起了问答2017-06-02
4
回复
1014
浏览

public class player22 : MonoBehaviour {
    public float speed=10.0F;
    void Update()
    {
        CharacterController controller = GetComponent<CharacterController> ();
        transform.Rotate(0, Input.GetAxis("Horizontal") * rotateSpeed, 0);
        Vector3 forward = transform.TransformDirection(Vector3.forward);
        float curSpeed = speed * Input.GetAxis("Vertical");
        controller.SimpleMove(forward * curSpeed);

}

这是前后移动,在通过旋转 转换方向 siki老师有没有左右移动的方法 --之前视频代码好像过时了

所有回复
  • siki 2017-06-02

    现在左右按键是转换方向的, 你想实现怎么样的左右移动,具体什么样子的功能

    SimpleMove 这个方法里面传递一个方向就可以了,不管想向哪个方向移动

    • Moon 2017-06-02

      现在出来的效果是可以前后移动 然后当左右的时候会默认顺时针或逆时针旋转方向,然后接着按旋转后的方向进行前后移动==

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-06-02

    你想左右移动的话,可以吧作用控制旋转的修改一下

    CharacterController controller = GetComponent<CharacterController> ();
    Vector3 forward = transform.TransformDirection(Vector3.forward);
    Vector3 right= transform.TransformDirection(Vector3.right);
    float curSpeed = speed * Input.GetAxis("Vertical");
    float curSpeed2 = speed * Input.GetAxis("Horizontal");
    controller.SimpleMove(forward * curSpeed+right*curSpeed2);

     

    还有-4条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!