【问题标题】:Set Component property using a var使用 var 设置组件属性
【发布时间】:2017-10-13 11:14:42
【问题描述】:
我想这样做:
Transform trans = gameObject.GetComponent<Transform>();
string propertyName = "position";
trans[propertyName] = new Vector3(0, 0, 0);
我如何在 c# trans[propertyName] 中完成这部分?
【问题讨论】:
标签:
c#
unity3d
components
【解决方案1】:
通过反射,您可以实现:
Transform trans = gameObject.GetComponent<Transform>();
Debug.Log(typeof(Transform).GetProperty("position").GetValue(trans, null));
会给你你得到的变换的位置。请注意,它可以通过直接访问转换来简化
Transform trans = gameObject.transform;
对于设置值,这就是您要问的:
typeof(Transform).GetProperty("position").SetValue(gameObject.transform, new Vector3(0, 0, 0), null);