位置

时间:2016-03-19 13:31:25

标签: c# unity3d

我收到错误:

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

有什么问题?

1 个答案:

答案 0 :(得分:6)

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

var transform = GameObject.FindWithTag("Object").transform;
var position = Camera.main.ScreenToWorldPoint(transform.position);
position.x -= 10;
transform.position = Camera.main.WorldToScreenPoint(position);

请注意从世界到屏幕坐标的转换,以便将所有内容保留在原始上下文中。

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