/// <summary> /// Draw the GUI. /// </summary> public override void OnInspectorGUI() { myTarget = (PowerUpResponder)target; if (responseVisibility == null) { responseVisibility = new Dictionary<PowerUpResponse, bool> (); } if (myTarget.responses == null) { myTarget.responses = new List<PowerUpResponse>(); } EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); // Add new actions if (GUILayout.Button("Add PowerUp Type")) { if (myTarget.responses == null) { myTarget.responses = new List<PowerUpResponse>(); myTarget.responses.Add (new PowerUpResponse()); } else { myTarget.responses.Add (new PowerUpResponse()); } } EditorGUILayout.EndHorizontal(); // Cache response names if (responseNames == null) responseNames = new List<string>(); if (myTarget.responses.Count != responseNames.Count) { responseNames = new List<string>(); foreach (PowerUpResponse response in myTarget.responses) { responseNames.Add (response.type); } } if (myTarget.responses != null) { EditorGUILayout.BeginHorizontal(); GUILayout.Space(10); EditorGUILayout.BeginVertical(); RenderResetResponse(); for (int i = 0; i < myTarget.responses.Count; i++) { if (!responseVisibility.ContainsKey(myTarget.responses[i])) responseVisibility.Add (myTarget.responses[i], false); RenderResponse(myTarget.responses[i]); } EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); } }
public void OnTriggerEnter(Collider collider) { PowerUpResponder power = collider.GetComponent <PowerUpResponder>(); if (power != null) { Execute(power); } else { power = collider.GetComponentInParent <PowerUpResponder>(); if (power != null) { Execute(power); } } }
private void Execute(PowerUpResponder pr) { pr.ExecutePowerUp(); Destroy(gameObject); // Kill the power up ItemManager.Instance.RespawnPowerUp(); // Tell the item manager to spawn a new power up }