位置错误

0 c# unity-game-engine

我收到错误:

错误:赋值的左侧必须是变量,属性或索引器

问题是什么?

Jon*_*eet 6

Transform.positionis 的类型Vector3,是一个struct.这意味着当您访问它时,您将获得该值的副本.然后ScreenToWorldPoint获取该值并返回另一个值Vector3.改变这个值不会有用 - 它不会改变变换中的任何东西,这可能是你想要实现的.听起来你可能想要这样的东西:

var transform = GameObject.FindWithTag("Object").transform;
var position = Camera.main.ScreenToWorldPoint(transform.position);
position.x -= 10;
transform.position = Camera.main.WorldToScreenPoint(position);
Run Code Online (Sandbox Code Playgroud)

请注意从世界到屏幕坐标的转换,以保持原始上下文中的所有内容.

写完所有这些之后,应该注意到我从未做过任何Unity3d编码 - 这只是基于常规的C#.

  • @Gog65:2017年下半年的某个时候,我想. (3认同)