Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(196评价)
价格: 4019.00元
SerializeField
大旭发起了问答2023-04-11
2
回复
58
浏览

老师你好,自定义一个类,这个类继承Image,在这类里定义的private私有字段想要显示在Inspector面板里,所以给这个private字段添加[SerializeField]特性,但是不能显示出这个私有字段,我在网上搜这个问题没有搜到,所以想问一下老师这个问题的原因以及如何解决?

所有回复
  • 老师_Trigger 2023-04-12

    同学你好

    [SerializeField]特性可以使一个私有字段被序列化,但是不能保证在Inspector面板中显示出来。

    要在Inspector面板中显示出私有字段,可以添加一个public属性来访问这个私有字段,并且在这个属性上添加[SerializeField]特性。例如:

    using UnityEngine;
    
    public class MyImage : UnityEngine.UI.Image
    {
        [SerializeField]
        private string myPrivateField;
    
        public string MyPublicProperty
        {
            get { return myPrivateField; }
            set { myPrivateField = value; }
        }
    }

    在上面的代码中,我们新添加了一个名为MyPublicProperty的公有属性,它访问了私有字段myPrivateField并且添加了[SerializeField]特性。这样,在Inspector面板中将会显示MyPublicProperty属性,我们可以通过它来设置myPrivateField的值。

    还有-4条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!