Fight Arena and enemys new Demon
This commit is contained in:
17
Assets/Scripts/Editor/NavMeshClearerEditor.cs
Normal file
17
Assets/Scripts/Editor/NavMeshClearerEditor.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
[CustomEditor(typeof(NavMeshClearer))]
|
||||
public class NavMeshClearerEditor : Editor
|
||||
{
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
DrawDefaultInspector();
|
||||
|
||||
NavMeshClearer clearer = (NavMeshClearer)target;
|
||||
if (GUILayout.Button("WyczyϾ NavMesh"))
|
||||
{
|
||||
clearer.ClearNavMesh();
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Editor/NavMeshClearerEditor.cs.meta
Normal file
2
Assets/Scripts/Editor/NavMeshClearerEditor.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d35e2a739f7ba8b4ab630aef89c67bce
|
||||
@@ -11,56 +11,86 @@ namespace Beyond
|
||||
[DisallowMultipleComponent]
|
||||
public class EnemyCombatNotifier : MonoBehaviour
|
||||
{
|
||||
private static EnemyCombatNotifier currentTarget;
|
||||
|
||||
private vMessageReceiver m_messageReceiver;
|
||||
private vControlAICombat m_AICombat;
|
||||
private vFSMBehaviourController m_fsm;
|
||||
|
||||
//bool wasTriggerd = false;
|
||||
private void OnCombat()
|
||||
{
|
||||
//if (wasTriggerd || GameStateManager.Instance == null)
|
||||
// return;
|
||||
GameStateManager.Instance.OnCombat(m_fsm);
|
||||
//wasTriggerd = true;
|
||||
}
|
||||
[SerializeField] private GameObject targetIcon; // << Dodajemy tylko to
|
||||
|
||||
private void OnCombatEnd()
|
||||
{
|
||||
if (GameStateManager.Instance)
|
||||
{
|
||||
GameStateManager.Instance.OnCombatEnd(m_fsm);
|
||||
// wasTriggerd = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
OnCombatEnd();
|
||||
}
|
||||
|
||||
// Start is called before the first frame update
|
||||
private void Start()
|
||||
{
|
||||
m_messageReceiver = GetComponent<vMessageReceiver>();
|
||||
m_AICombat = GetComponent<vControlAICombat>();
|
||||
m_fsm = GetComponent<vFSMBehaviourController>();
|
||||
|
||||
if (targetIcon)
|
||||
targetIcon.SetActive(false); // << Na start ukrywamy ikonkê
|
||||
|
||||
m_messageReceiver.onReceiveMessage += (s, message) =>
|
||||
{
|
||||
//Debug.Log("Received message: " + s + " " + message);
|
||||
if (s.Equals("Alert"))
|
||||
{
|
||||
OnCombat();
|
||||
OnCombat(); // Tylko kiedy Alert
|
||||
}
|
||||
else if (s.Equals("Flee") || s.Equals("Patrol"))
|
||||
{
|
||||
OnCombatEnd();
|
||||
OnCombatEnd(); // Kiedy Patrol albo Flee
|
||||
}
|
||||
};
|
||||
|
||||
if (m_AICombat)
|
||||
{
|
||||
m_AICombat.onDead.AddListener((arg0 => { OnCombatEnd(); }));
|
||||
m_AICombat.onDead.AddListener(arg0 => { OnCombatEnd(); });
|
||||
}
|
||||
}
|
||||
|
||||
private void OnCombat()
|
||||
{
|
||||
if (currentTarget != null && currentTarget != this)
|
||||
{
|
||||
currentTarget.DisableTargetIcon(); // Zgas stary target
|
||||
}
|
||||
|
||||
currentTarget = this;
|
||||
EnableTargetIcon(); // Zapal siebie
|
||||
|
||||
if (GameStateManager.Instance)
|
||||
{
|
||||
GameStateManager.Instance.OnCombat(m_fsm);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnCombatEnd()
|
||||
{
|
||||
if (currentTarget == this)
|
||||
{
|
||||
DisableTargetIcon(); // Zgas siebie
|
||||
currentTarget = null;
|
||||
}
|
||||
|
||||
if (GameStateManager.Instance)
|
||||
{
|
||||
GameStateManager.Instance.OnCombatEnd(m_fsm);
|
||||
}
|
||||
}
|
||||
|
||||
private void EnableTargetIcon()
|
||||
{
|
||||
if (targetIcon)
|
||||
targetIcon.SetActive(true);
|
||||
}
|
||||
|
||||
private void DisableTargetIcon()
|
||||
{
|
||||
if (targetIcon)
|
||||
targetIcon.SetActive(false);
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
OnCombatEnd(); // Kiedy przeciwnik znika
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
11
Assets/Scripts/NavMeshClearer.cs
Normal file
11
Assets/Scripts/NavMeshClearer.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
|
||||
public class NavMeshClearer : MonoBehaviour
|
||||
{
|
||||
public void ClearNavMesh()
|
||||
{
|
||||
NavMesh.RemoveAllNavMeshData();
|
||||
Debug.Log("NavMesh zosta³ wyczyszczony!");
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/NavMeshClearer.cs.meta
Normal file
2
Assets/Scripts/NavMeshClearer.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c699340440c77a7498daa58fdc99bfd3
|
||||
Reference in New Issue
Block a user