【问题标题】:Error with position位置错误
【发布时间】:2016-03-19 13:31:24
【问题描述】:

我得到错误:

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

有什么问题?

【问题讨论】:

  • position 返回的类型是否是结构体?

标签: c# unity3d


【解决方案1】:

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# 的基础上。

【讨论】:

  • 令人惊讶的是,这在 Unity 环境中是 100% 有效的。当我阅读“从未做过任何 Unity3D”编码时,我回去尝试寻找一些解释性错误,但没有找到。不错。 :)
  • 谢谢,它成功了。只是出于好奇,你认为你什么时候会达到 100 万的声誉? 2018年初? :)
  • @Gog65:我想是 2017 年下半年的某个时间。
猜你喜欢
  • 2020-07-18
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-11
相关资源
最近更新 更多