public bool CheckInventory(InventoryController inventory) { if (inventory != null) { for (var i = 0; i < inventoryItems.Length; i++) { if (!inventory.HasItem(inventoryItems[i])) { OnDoesNotHaveItem.Invoke(); return(false); } } OnHasItem.Invoke(); return(true); } return(false); }
int ItemIndexFromController(InventoryController controller, string itemName) { return(0); /* * if (controller.inventoryEvents.Length == 0) * return -1; * * if (string.IsNullOrEmpty (itemName)) * return -2; * * for (int i = 0; i < controller.inventoryEvents.Length; i++) * { * if (controller.inventoryEvents[i].key == itemName) * return i; * } * return -3; */ }
int ItemIndexFromController(InventoryController controller, string itemName) { if (controller.inventoryEvents.Length == 0) { return(-1); } if (string.IsNullOrEmpty(itemName)) { return(-2); } for (int i = 0; i < controller.inventoryEvents.Length; i++) { if (controller.inventoryEvents[i].key == itemName) { return(i); } } return(-3); }
// MonoBehaviour Messages - called by Unity internally. void Awake() { s_PlayerInstance = this; m_CharacterController2D = GetComponent <CharacterController2D>(); m_Animator = GetComponent <Animator>(); m_Capsule = GetComponent <CapsuleCollider2D>(); m_Transform = transform; m_InventoryController = GetComponent <InventoryController>(); m_CurrentBulletSpawnPoint = spriteOriginallyFacesLeft ? facingLeftBulletSpawnPoint : facingRightBulletSpawnPoint; for (int i = 0; i < transform.childCount; i++) { if (transform.GetChild(i).name == "Anim_kiyohime_puppet") { visuals = transform.GetChild(i).gameObject; defaultScaleX = visuals.transform.localScale.x; } } }
public override void OnInspectorGUI() { serializedObject.Update(); EditorGUILayout.PropertyField(m_TransitioningGameObjectProp); EditorGUILayout.PropertyField(m_TransitionTypeProp); EditorGUI.indentLevel++; if ((TransitionPoint.TransitionType)m_TransitionTypeProp.enumValueIndex == TransitionPoint.TransitionType.SameScene) { EditorGUILayout.PropertyField(m_DestinationTransformProp); } else { EditorGUILayout.PropertyField(m_NewSceneNameProp); EditorGUILayout.PropertyField(m_TransitionDestinationTagProp); } EditorGUI.indentLevel--; EditorGUILayout.PropertyField(m_TransitionWhenProp); EditorGUILayout.PropertyField(m_ResetInputValuesOnTransitionProp); EditorGUILayout.PropertyField(m_RequiresInventoryCheckProp); if (m_RequiresInventoryCheckProp.boolValue) { EditorGUI.indentLevel++; EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(m_InventoryControllerProp); if (EditorGUI.EndChangeCheck() || (m_InventoryControllerProp.objectReferenceValue != null && m_InventoryControllerItems.Length == 0)) { SetupInventoryItemGUI(); } if (m_InventoryControllerProp.objectReferenceValue != null) { InventoryController controller = m_InventoryControllerProp.objectReferenceValue as InventoryController; m_InventoryItemsProp.arraySize = EditorGUILayout.IntField("Inventory Items", m_InventoryItemsProp.arraySize); EditorGUI.indentLevel++; for (int i = 0; i < m_InventoryItemsProp.arraySize; i++) { SerializedProperty elementProp = m_InventoryItemsProp.GetArrayElementAtIndex(i); int itemIndex = ItemIndexFromController(controller, elementProp.stringValue); if (itemIndex == -1) { EditorGUILayout.LabelField("No items found in controller"); } else if (itemIndex == -2) { elementProp.stringValue = m_InventoryControllerItems[0].text; } else if (itemIndex == -3) { Debug.LogWarning("Previously listed item to check not found, resetting to item index 0"); elementProp.stringValue = m_InventoryControllerItems[0].text; } else { itemIndex = EditorGUILayout.Popup(new GUIContent("Item " + i), itemIndex, m_InventoryControllerItems); elementProp.stringValue = m_InventoryControllerItems[itemIndex].text; } } EditorGUI.indentLevel--; EditorGUILayout.PropertyField(m_OnHasItemProp); EditorGUILayout.PropertyField(m_OnDoesNotHaveItemProp); } else { for (int i = 0; i < m_InventoryItemsProp.arraySize; i++) { SerializedProperty elementProp = m_InventoryItemsProp.GetArrayElementAtIndex(i); elementProp.stringValue = ""; } } EditorGUI.indentLevel--; } serializedObject.ApplyModifiedProperties(); }