/// <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();
            }
        }
Пример #2
0
    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);
            }
        }
    }
Пример #3
0
 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
 }