Unity Driven 属性(代码控制属性)使用示例

文章目录

  • 简介
  • 示例
  • 备注

简介

本文给出 Unity 中 DrivenRectTransformTracker 属性的使用示例(编辑器控制特定属性不让用户编辑)。

示例

public Sample : MonoBehavior {
    private DrivenRectTransformTracker  m_Tracker; // 定义
    private RectTransform m_Transform;
    void Update {
        m_Tracker.Clear();
        if (!m_Transform || m_Transform && m_Transform != (RectTransform)transform) {
            m_Transform = (RectTransform) transform; // 获取对要控制的 RectTransform 的引用
        }
        if (m_Transform != null) {
            m_Tracker.Add(this, m_Transform, DrivenTransformProperties.SizeDelta); // 注册
            var drivenSize = new Vector2(46, 46);
            m_Transform.sizeDelta = drivenSize;
        }
    }
    void OnDisable() {
        m_Tracker.Clear(); // 必须清空。否则在 Prefab Override 时,会被拒绝。并且会把位置xy变更一同拒绝。
    }
}

备注

OnDisable 中的 Clear 是必须的。在此例中,只控制了对象的 Size,如果不进行 Clear,则在 Prefab Ovrride 时,会被拒绝。并且会把位置xy变更一同拒绝。

你可能感兴趣的:(Unity,unity,游戏开发)