检查hierarchy属性missing

检查hierarchy属性missing

主要用到的API:

SerializedObject so=new SerializedObject(Object) 创建一个可序列化对象

var iter=so.GetIterator() 获取这个对象的迭代器 可以用iter.NextVisiable(true) 来判断有没有下一个属性

iter.propertyType 属性的类型

iter.objectReferenceValue 引用类型的属性引用的对象

iter.objectReferenceInstanceIDValue 不等于0时说明有引用对象 此时若objectReferenceValue为空 则说明Missing了

编辑器代码:
这里以Image组件为例子:

Image image = go.GetComponent<Image>();
        if (image != null)
        {
            SerializedObject so = new SerializedObject(image);
            SerializedProperty sp = so.GetIterator();
            Rect rect;
            while (sp.NextVisible(true))
            {
                if (sp.propertyType == SerializedPropertyType.ObjectReference)//检查是否为引用类型
                {
               	 	//如果检查missing,可以改为 sp .objectReferenceValue == null && sp .objectReferenceInstanceIDValue != 0
                
                    if (sp.displayName == "Sprite" && sp.objectReferenceValue == null)//检查image的sprite是否为空或者丢失
                    {                      
                        //Todo something;
                    } 
                }
            }
        }

以上就是检查的思路了,有不正确的还望指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值