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

(197评价)
价格: 4431.00元
能不能解释一下下面的代码?
shuaibi发起了话题2017-06-17
3
回复
311
浏览

    void Update () {
        float horizontal_move = Input.GetAxis("Horizontal");
        //Debug.Log (horizontal_move);
        float vertical_move = Input.GetAxis("Vertical");
        this.rigidbody.AddForce (new Vector3 (horizontal_move, 0, vertical_move) * 10);

    }

 

这段代码有点没看懂,能不能具体解释一下

Roll a ball案例

所有回复
  • siki 2017-06-17

     float horizontal_move = Input.GetAxis("Horizontal");这里是得到左右方向键的按下,

    按下左键 返回-1  按下右键返回1  这样通过左右键的按下控制左右移动

    同理 float vertical_move = Input.GetAxis("Vertical"); 这里得到的是上下方向键的按下

    上方向键返回1 下方向键返回-1

    • shuaibi 2017-06-17

      为什么得到-1,1就可以来实现移动呢?不就是一个参数吗?
      他具体是怎么控制的呢?
      主要是这行
      this.rigidbody.AddForce (new Vector3 (horizontal_move, 0, vertical_move) * 10);

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

    距离 当按下右方向键的时候 float horizontal_move = Input.GetAxis("Horizontal"); 这里返回1

    当没有按下上下键的时候float vertical_move = Input.GetAxis("Vertical"); 这里返回0

    this.rigidbody.AddForce (new Vector3 (horizontal_move, 0, vertical_move) * 10);

    这里就相当于

    this.rigidbody.AddForce (new Vector3 (1, 0, 0) * 10); 

    这样不就向着x正轴的方向移动了吗

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