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();
}
}
}