首页 > 解决方案 > 2.5D游戏中的角色移动

问题描述

我希望该图形仅沿 X 轴移动

我有这个代码:

var movement = Input.GetAxis("Horizontal");
transform.position += new Vector3(movement * Time.deltaTime * Speed, 0, 0);

但是这个人形不知何故奇怪地朝不同的方向移动。有什么问题?我的 Y 轴设置为 0

标签: unity3d

解决方案


您正在使用 += 因此,如果您的起始位置不是 0,您将添加起始值:this

transform.position += new Vector3(movement * Time.deltaTime * Speed, 0, 0);

翻译成

transform.position = transform.position + new Vector3(movement * Time.deltaTime * Speed, 0, 0);

你应该做

Vector3 temp = transform.position + new Vector3(movement * Time.deltaTime * Speed, 0, 0);
transform.position =new Vector3(temp.x,transform.position.y,0);

或简而言之

transform.position=new Vector3(transform.position.x+movement * Time.deltaTime * Speed,transform.position.y,0)

推荐阅读