Я работаю над попыткой создать скрипт редактора, чтобы отключить / включить несколько различных объектов GameObject одним щелчком мыши. По сути, у меня есть два «объекта игрока», которые имеют разные зависимости, и необходимость включать / отключать их вручную замедляет процесс тестирования.
Раньше я не делал сценарий редактора, поэтому я, вероятно, собираюсь в этом совершенно неправильный путь, ха-ха. Я получаю ошибку исключения нулевой ссылки, когда нажимаю кнопку в меню.
Вот код:
using UnityEngine; using UnityEditor;
publi c class SwitchPlayer: Editor {
public static GameObject player;
public static GameObject canoe;
public static GameObject canoeAIO;
public static GameObject monty;
public static GameObject layerManager;
public static GameObject interactionsManager;
public static GameObject canoeCam;
public static GameObject playerCam;
private void OnEnable()
{
player = GameObject.Find("Player").gameObject;
canoe = GameObject.Find("CanoeSingle").gameObject;
canoeAIO = GameObject.Find("Canoe AIO").gameObject;
monty = GameObject.Find("Monty").gameObject;
layerManager = GameObject.Find("LayerManager").gameObject;
interactionsManager = GameObject.Find("InteractionsManager").gameObject;
canoeCam = GameObject.Find("CanoeCam").gameObject;
playerCam = GameObject.Find("PlayerCam").gameObject;
}
[MenuItem("Testing/Switch to Player")]
static void SwitchToPlayer()
{
canoeAIO.SetActive(false);
canoe.SetActive(true);
player.SetActive(true);
monty.SetActive(true);
layerManager.SetActive(true);
interactionsManager.SetActive(true);
canoeCam.SetActive(false);
playerCam.SetActive(true);
}
В другом месте я читал, что используется функция OnEnable (), поэтому я включил ее здесь.
Надеюсь, это все поможет, и я ценю любые ответы :)