Как динамически переключаться между общедоступными и частными переменными в Unity

#c# #unity3d

#c# #unity3d

Вопрос:

Я написал следующий скрипт на Unity C #.

Test.cs

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{

    public bool showParams = true;
    public int test1 = 100;
    public string test = "";
    
    // Use this for initialization
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {

    }
}
  

Я хочу изменить, отображаются ли другие параметры в инспекторе, путем включения / выключения переменной showParams.

Как показано на рисунке ниже, когда включен showParams, все переменные являются общедоступными. введите описание изображения здесь

Как показано на рисунке ниже, я хочу запретить отображение всех переменных, когда showParams выключен.

введите описание изображения здесь

Я хочу изменить, отображаются ли другие параметры в инспекторе, путем включения / выключения переменной showParams.

Как показано на рисунке ниже, когда включен showParams, все переменные являются общедоступными.

Как показано на рисунке ниже, я хочу запретить отображение всех переменных, когда showParams выключен.

Возможно ли это с Unity C #?

Комментарии:

1. answers.unity.com/questions/192895/…

Ответ №1:

Вам нужно будет написать пользовательский редактор для вашего класса, чтобы иметь возможность делать это. Вы не можете изменить модификаторы доступа (public и private) членов вашего класса после компиляции кода, что должно произойти, чтобы они отображались в инспекторе.

Смотрите документы о том, как написать пользовательский редактор.

Ответ №2:

Как указывали другие, эта опция не встроена в Unity. Вам придется написать свой собственный пользовательский инспектор или панель свойств.

К счастью, многие люди сталкивались с этой же проблемой до вас, поэтому в Интернете есть несколько расширений редактора Unity, которые делают это. Вы можете поискать в Google или Github «unity conditional hide», чтобы найти их. Тот, который я лично счел полезным,https://github.com/krishx007/ConditionalHideAttribute_Unity

Комментарии:

1. Я абсолютно рекомендую Odin для этого!