【问题标题】: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);
    

    【讨论】:

      猜你喜欢
      • 2012-02-29
      • 2020-07-02
      • 2022-12-28
      • 2020-06-24
      • 2016-11-07
      • 1970-01-01
      • 2019-04-20
      • 2018-01-11
      • 2022-07-28
      相关资源
      最近更新 更多