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; }
protected void ReleaseAttacher() { if (Attacher != null) { Attacher.Detach(); Attacher = null; } }
protected void HideText() { if (m_TextElement?.hierarchy.parent != null) { m_TextAttacher?.Detach(); m_TextElement.RemoveFromHierarchy(); } }
void ReleaseAttacher() { if (m_Attacher == null) { return; } m_Attacher.Detach(); m_Attacher = null; }
// 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(); }