コード例 #1
0
 public int Hit(int damage)
 {
     // int remainingHP = this.hitpoint - damage;
     // this.hitpoint = remainingHP;
     // if (remainingHP <= 0)
     // {
     if (attachers.Count > 0)
     {
         float    minLifetime    = float.MaxValue;
         Attacher oldestAttacher = null;
         foreach (var item in attachers)
         {
             GameObject obj      = item.Key;
             Attacher   attacher = obj.GetComponent <Attacher>();
             if (attacher.lifetime < minLifetime)
             {
                 minLifetime    = attacher.lifetime;
                 oldestAttacher = attacher;
             }
         }
         if (oldestAttacher != null)
         {
             oldestAttacher.Detach();
         }
         return(1);
     }
     this.Dead();
     return(0);
     // }
     // return remainingHP;
 }
コード例 #2
0
 protected void ReleaseAttacher()
 {
     if (Attacher != null)
     {
         Attacher.Detach();
         Attacher = null;
     }
 }
コード例 #3
0
 protected void HideText()
 {
     if (m_TextElement?.hierarchy.parent != null)
     {
         m_TextAttacher?.Detach();
         m_TextElement.RemoveFromHierarchy();
     }
 }
コード例 #4
0
 void ReleaseAttacher()
 {
     if (m_Attacher == null)
     {
         return;
     }
     m_Attacher.Detach();
     m_Attacher = null;
 }
コード例 #5
0
        // void OnSceneGUI() {
        //     // objectListEditor.OnSceneGUI(attacher.objects, attacher);
        //  serializedObject.ApplyModifiedProperties();
        // }

        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            SerializedProperty prop;

            if (attacher.strategy == null)
            {
                EditorGUILayout.HelpBox("An Attach Strategy describes how objects will attach. You can create one "
                                        + "from the menu in Assets->Create->Clingy.", MessageType.Warning);
            }
            EditorGUI.BeginChangeCheck();
            AttachStrategy newStrategy = (AttachStrategy)EditorGUILayout.ObjectField("Attach Strategy",
                                                                                     attacher.strategy, typeof(AttachStrategy), false);

            if (EditorGUI.EndChangeCheck())
            {
                attacher.strategy = newStrategy;
            }

            prop = serializedObject.FindProperty("_request");
            objectListEditor.OnInspectorGUI(prop, attacher.isActive);

            DrawPropertiesExcluding(serializedObject, new string[] { "m_Script", "_strategy" });
            // EditorGUILayout.PropertyField(serializedObject.FindProperty("attachOnStart"));

            EditorGUI.BeginChangeCheck();
            int executionOrder = EditorGUILayout.IntField("Execution Order", ((Attacher)target).executionOrder);

            if (EditorGUI.EndChangeCheck())
            {
                ((Attacher)target).executionOrder = executionOrder;
            }

            EditorGUILayout.Space();
            EditorGUILayout.PropertyField(serializedObject.FindProperty("events"));

            EditorGUI.BeginDisabledGroup(!EditorApplication.isPlaying);
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Attach", GUILayout.Width(100)))
            {
                attacher.Attach();
            }
            if (GUILayout.Button("Detach", GUILayout.Width(100)))
            {
                attacher.Detach();
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            EditorGUI.EndDisabledGroup();

            serializedObject.ApplyModifiedProperties();
        }