public override void OnGUI(Rect rect) { if ((gameObject = Selection.activeGameObject) == null) { gameObject = QuestEditor.selectedQuest.gameObject; } GUILayout.Label("Créer un noeud (trigger) :", EditorStyles.boldLabel); gameObject = (GameObject)EditorGUILayout.ObjectField("GameObject", gameObject, typeof(GameObject), true); triggerType = (TRIGGER_TYPES)EditorGUILayout.EnumPopup("Type du trigger :", triggerType); if (GUILayout.Button("Créer le trigger") && gameObject != null) { new Node(gameObject, QuestEditor.TranslateType(triggerType)); } }
public static System.Type TranslateType(TRIGGER_TYPES type) { switch (type) { case TRIGGER_TYPES.BUY: return(typeof(QuestTrigger_Buy)); case TRIGGER_TYPES.CRAFT: return(typeof(QuestTrigger_Craft)); case TRIGGER_TYPES.ITEM_PICKUP: return(typeof(QuestTrigger_ItemPickup)); case TRIGGER_TYPES.DIALOGUE: return(typeof(QuestTrigger_Dialogue)); case TRIGGER_TYPES.ZONE: return(typeof(QuestTrigger_Zone)); case TRIGGER_TYPES.START: return(typeof(StartQuest_Dialogue)); case TRIGGER_TYPES.END: return(typeof(EndQuest_Dialogue)); case TRIGGER_TYPES.AT_REMOVE_ITEM: return(typeof(RemoveItemAT)); case TRIGGER_TYPES.AT_REWARD: return(typeof(RewardTriggerAT)); case TRIGGER_TYPES.AT_END_QUEST: return(typeof(EndQuestAT)); case TRIGGER_TYPES.AT_INSTANTIATE: return(typeof(InstantiateAT)); case TRIGGER_TYPES.AT_ACTIVE_ENNEMI: return(typeof(ActiveEnnemiAT)); } return(null); }
void DisplayData() { // Common objects if (triggerType != (triggerType = (TRIGGER_TYPES)EditorGUILayout.EnumPopup("Type du trigger :", triggerType))) { node.ChangeScript(QuestEditor.TranslateType(triggerType)); } if (GUILayout.Button("Changer GameObject")) { node.ChangeGameObject(Selection.activeGameObject); } node.trigger.isActive = EditorGUILayout.Toggle("is Active", node.trigger.isActive); node.trigger.enabled = node.trigger.isActive; desactiveSelf = EditorGUILayout.Toggle("Desactive Self", desactiveSelf); if (desactiveSelf && !node.trigger.triggersToDesactive.Contains(node.trigger)) { node.trigger.triggersToDesactive.Add(node.trigger); } else if (!desactiveSelf) { node.trigger.triggersToDesactive.Remove(node.trigger); } node.trigger.isInteractable = EditorGUILayout.BeginToggleGroup("is Interactable", node.trigger.isInteractable); node.trigger.offsetIcon = EditorGUILayout.Vector2Field("offsetIcon", node.trigger.offsetIcon); EditorGUILayout.EndToggleGroup(); if (node.trigger.tag == "NPC") { node.trigger.offsetIcon = node.trigger.GetComponent <NPC>().offsetIcon; } // Specific node.trigger if (node.trigger.GetType() == typeof(QuestTrigger_Dialogue) || node.trigger.GetType() == typeof(StartQuest_Dialogue) || node.trigger.GetType() == typeof(EndQuest_Dialogue)) { DisplayDialogue(); } else if (node.trigger.GetType() == typeof(QuestTrigger_ItemPickup)) { ((QuestTrigger_ItemPickup)node.trigger).isQuestItem = EditorGUILayout.Toggle("Is Quest Item ?", ((QuestTrigger_ItemPickup)node.trigger).isQuestItem); node.trigger.GetComponent <ItemOnObject>().item = (Item)EditorGUILayout.ObjectField("Item to pickup", node.trigger.GetComponent <ItemOnObject>().item, typeof(Item), false); node.trigger.offsetIcon = node.trigger.GetComponent <ItemOnObject>().item.offsetIcon; /*node.trigger.GetComponent<SpriteRenderer>().sprite = node.trigger.GetComponent<ItemOnObject>().item.icon; * if (node.trigger.GetComponent<ItemPickup>() != null) * Object.DestroyImmediate(node.trigger.GetComponent<ItemPickup>());*/ } else if (node.trigger.GetType() == typeof(QuestTrigger_Buy)) { DisplayItemsToBuy(); } else if (node.trigger.GetType() == typeof(QuestTrigger_Craft)) { DisplayItemsToCraft(); } else if (node.trigger.GetType() == typeof(RemoveItemAT)) { ((RemoveItemAT)node.trigger).item = (Item)EditorGUILayout.ObjectField("Item to remove", ((RemoveItemAT)node.trigger).item, typeof(Item), false); } else if (node.trigger.GetType() == typeof(RewardTriggerAT)) { DisplayRewards(); } else if (node.trigger.GetType() == typeof(InstantiateAT)) { ((InstantiateAT)node.trigger).prefab = (GameObject)EditorGUILayout.ObjectField("Prefab to instantiate", ((InstantiateAT)node.trigger).prefab, typeof(GameObject), false); } }