Unity[Tips]利用属性切换物体显示隐藏

C#中的属性

  • 访问属性时,其行为类似于字段。 但与字段不同的是,属性通过访问器实现;访问器用于定义访问属性或为属性赋值时执行的语句。

    属性语法

  • 属性语法是字段的自然延伸。 字段定义存储位置,
  • 属性定义包含getset 访问器的声明,这两个访问器用于检索该属性的值以及对其赋值。
    1
    2
    3
    4
     public class Person
    {
    public string FirstName { get; set; }
    }

    功能需求

  • 点击按钮,显示对应的形状,其他形状隐藏
    2022-07-28-11-29-59

    代码实现

  • 控制脚本
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     public class UIObjectView : MonoBehaviour
    {
    //存储所有形状
    public GameObject[] objects;
    private int currentObject;

    public int CurrentObject
    {
    get => currentObject;
    set
    {
    currentObject = value;
    UpdateObject();
    }
    }

    private void UpdateObject()
    {
    for (int i = 0; i < objects.Length; i++)
    {
    objects[i].SetActive(i==currentObject);
    }
    }
    }
  • 调用脚本,当调用CurrentObject赋值时执行UIObjectViewCurrentObjectSet方法,实现更新物体显示隐藏。
    1
    2
    3
    4
    5
    6
    7
    8
    9
     public class ObjectController : MonoBehaviour
    {
    public UIObjectView uiObjectView;
    //按钮点击事件,根据按钮名称添加index(1、2、3、4)
    public void OnSelectObjectClick(int index)
    {
    uiObjectView.CurrentObject = index - 1;
    }
    }