美文网首页
unity 的 CanEditMultipleObjects属性

unity 的 CanEditMultipleObjects属性

作者: 流飞飞FW | 来源:发表于2021-10-21 15:33 被阅读0次
  • CanEditMultipleObjects属性一般和[CustomEditor(typeof(***))]属性一起使用。
  • 在Inspector面板同时编辑多个对象属性时,其实是对最后一个物体做修改,需要自己修改其他选中对象的属性:
[CanEditMultipleObjects]
[CustomEditor(typeof(Card))]
public class CardInspector : UnityEditor.Editor
{
    Card m_card;
    private void OnEnable()
    {
        //target即当前编辑器中选中的对象;如果同时选中多个,target则为Hierarchy视图中选中的最后一个
        m_card = target as Card;

        //通过targets获取编辑器中选中的多个对象
        var cards = targets;
    }

    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        //支持多重编辑
        //在Inspector面板同时编辑多个对象属性时,其实是对最后一个物体做修改,需要自己修改其他选中对象的属性
        if (GUI.changed)
        {
            for (int i = 0; i < targets.Length; i++)
            {
                var card = targets[i] as EditorCard;
                if (card == m_card)
                {
                    continue;
                }
                //TODO:修改选中对象的属性
            }
        }
    }
}

相关文章

网友评论

      本文标题:unity 的 CanEditMultipleObjects属性

      本文链接:https://www.haomeiwen.com/subject/igifaltx.html