poprawki materialy unity 6, pajaki, podmiana katalogu FSM w AIControlerze, zmiana w Spider 2.0 Behaviours , skopane zycie bylo, ladowalo pajaka z zyciem 2.
This commit is contained in:
@@ -10,21 +10,50 @@ namespace Invector.vCharacterController.AI
|
||||
{
|
||||
get
|
||||
{
|
||||
|
||||
if (_instance == null) _instance = FindObjectOfType<vAINoiseManager>();
|
||||
if (_instance == null)
|
||||
{
|
||||
var noiseManager = new GameObject("AI Noise Manager");
|
||||
_instance = noiseManager.AddComponent<vAINoiseManager>();
|
||||
_instance.noises = new List<vNoise>();
|
||||
}
|
||||
var newInstance = noiseManager.AddComponent<vAINoiseManager>();
|
||||
newInstance.noises = new List<vNoise>();
|
||||
_instance = newInstance;
|
||||
}
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
public delegate void NoiseOperator(vNoise noise);
|
||||
|
||||
public event NoiseOperator OnAddNoise;
|
||||
public event NoiseOperator OnRemoveNoise;
|
||||
/// <summary>
|
||||
/// List of all noises that is listening
|
||||
/// </summary>
|
||||
public List<vNoise> noises;// { get; protected set; }
|
||||
|
||||
|
||||
public List<vAINoiseListener> noiseListeners = new List<vAINoiseListener>();
|
||||
|
||||
public void AddListener(vAINoiseListener listener)
|
||||
{
|
||||
if (!noiseListeners.Contains(listener))
|
||||
{
|
||||
OnAddNoise += listener.AddNoise;
|
||||
OnRemoveNoise += listener.RemoveNoise;
|
||||
noiseListeners.Add(listener);
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveListener(vAINoiseListener listener)
|
||||
{
|
||||
if(noiseListeners.Contains(listener))
|
||||
{
|
||||
OnAddNoise -= listener.AddNoise;
|
||||
OnRemoveNoise -= listener.RemoveNoise;
|
||||
noiseListeners.Remove(listener);
|
||||
}
|
||||
}
|
||||
|
||||
public void AddNoise(vNoise noise)
|
||||
{
|
||||
if (noises==null) noises = new List<vNoise>();
|
||||
@@ -32,11 +61,13 @@ namespace Invector.vCharacterController.AI
|
||||
if (noises.Contains(noise))
|
||||
{
|
||||
noises[noises.IndexOf(noise)].AddDuration(noise.duration);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
noise.onFinishNoise.AddListener(RemoveNoise);
|
||||
noises.Add(noise);
|
||||
noises.Add(noise);
|
||||
OnAddNoise?.Invoke(noise);
|
||||
}
|
||||
if (!noise.isPlaying) StartCoroutine(noise.Play());
|
||||
}
|
||||
@@ -45,9 +76,15 @@ namespace Invector.vCharacterController.AI
|
||||
{
|
||||
if (noises == null) noises = new List<vNoise>();
|
||||
if (noises.Contains(noise))
|
||||
{
|
||||
{
|
||||
OnRemoveNoise?.Invoke(noise);
|
||||
noises.Remove(noise);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void OnDestroy()
|
||||
{
|
||||
_instance = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user