Problème de EditorGUILayout.BeginVertical();
Publié : 18 Jan 2020 16:02
Bonjour, depuis un certain temps, je développe un jeu FNAF, mais je suis coincé dans une partie très ennuyeuse pour le reste de mon développement.
Normalement quand je veux mettre ce que je veux faire ça devrait me faire ça:
Mais à la place, cela me fait une boîte vide :c
Je vous fournis les lignes de code pour m'aider à résoudre cette erreur.
Merci pour toutes les personnes qui essaient de m'aider !
Animatronic.cs
AnimatronicEditor.cs
Normalement quand je veux mettre ce que je veux faire ça devrait me faire ça:
Mais à la place, cela me fait une boîte vide :c
Je vous fournis les lignes de code pour m'aider à résoudre cette erreur.
Merci pour toutes les personnes qui essaient de m'aider !
Animatronic.cs
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Animatronic : MonoBehaviour
{
[System.Serializable]
public enum Actions
{
TPose = 0,
Stage,
Standing,
OutsideCamera,
OusideWindow,
OutSideDoor,
Kill
}
[System.Serializable]
public struct AnimatronicNodeData
{
public Node node;
public bool weight;
public Actions action;
}
public Node startLocation;
public AnimatronicNodeData[] nodeData;
// Start is called before the first frame update
void Start()
{
this.gameObject.transform.position = startLocation.gameObject.transform.position;
this.gameObject.transform.rotation = startLocation.gameObject.transform.rotation;
}
// Update is called once per frame
void Update()
{
}
}
Code : Tout sélectionner
using System.Collections;
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(Animatronic))]
public class AnimatronicEditor : Editor
{
public override void OnInspectorGUI()
{
Animatronic animatronicScript = (Animatronic)target;
animatronicScript.startLocation = (Node) EditorGUILayout.ObjectField("Starting Node:", animatronicScript.startLocation, typeof(Node), true);
IAManager[] aiManager = Resources.FindObjectsOfTypeAll<IAManager>();
if (aiManager == null)
{
EditorGUILayout.HelpBox("Scene must have and AI Manager to populate Nodes.", MessageType.Error);
}
else
{
Node[] nodes = aiManager[0].nodes;
if(animatronicScript.nodeData == null || animatronicScript.nodeData.Length != nodes.Length)
{
animatronicScript.nodeData = new Animatronic.AnimatronicNodeData[nodes.Length];
for(int i = 0; i < nodes.Length; i++)
{
animatronicScript.nodeData[i] = new Animatronic.AnimatronicNodeData();
}
}
EditorGUILayout.BeginVertical();
for(int i = 0; i < nodes.Length; i++)
{
EditorGUILayout.BeginHorizontal();
EditorGUILayout.TextArea(nodes[i].name);
animatronicScript.nodeData[i].action = (Animatronic.Actions)EditorGUILayout.EnumPopup(animatronicScript.nodeData[i].action);
animatronicScript.nodeData[i].weight = EditorGUILayout.Toggle(animatronicScript.nodeData[i].weight);
EditorGUILayout.EndHorizontal();
}
EditorGUILayout.EndVertical();
}
}
}