unity3d - 2.5D游戏中的角色移动
问题描述
我希望该图形仅沿 X 轴移动
我有这个代码:
var movement = Input.GetAxis("Horizontal");
transform.position += new Vector3(movement * Time.deltaTime * Speed, 0, 0);
但是这个人形不知何故奇怪地朝不同的方向移动。有什么问题?我的 Y 轴设置为 0
解决方案
您正在使用 += 因此,如果您的起始位置不是 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)
推荐阅读
- c# - 为什么我的 Web API 项目中出现“HttpException”缺失命名空间错误
- ssrs-2008 - SSRS - 如何在柱形图上显示前 N 个
- python - 如何绘制面向局部 x 轴 matplotlib 3d 的函数?
- reactjs - Getting identifier error in react application
- javascript - 在 .vue 组件中编译方法时出现语法错误
- r - 以预定义字符集为条件提取字符串
- c# - C# GCM 未注册
- php - 在多维 Year-Make-Model PHP 数组中按年份排序(查找最小值和最大值范围)
- css - CSS3 线性渐变函数(图像和渐变之间的暗线)
- database - 有没有办法为 Postgres 列强制执行特定的字符串结构?