Testing client-server
This commit is contained in:
parent
44986e3f09
commit
aeabb5344c
@ -18,7 +18,8 @@ namespace Characters.Enemy
|
||||
public float aggressionDistance = 5f;
|
||||
|
||||
[HideInInspector] public bool canAttack;
|
||||
|
||||
|
||||
[SyncVar(hook = nameof(OnStateChanged)), HideInInspector] public EnemyState state = EnemyState.Idle;
|
||||
[SyncVar, HideInInspector] public float aimRigWeight;
|
||||
|
||||
public readonly StateMachine<EnemyState> stateMachine = new StateMachine<EnemyState>();
|
||||
@ -92,7 +93,12 @@ namespace Characters.Enemy
|
||||
{
|
||||
base.TakeDamage();
|
||||
|
||||
stateMachine.SetCurrentState(EnemyState.Stunned);
|
||||
state = EnemyState.Stunned;
|
||||
}
|
||||
|
||||
void OnStateChanged(EnemyState prevState, EnemyState newState)
|
||||
{
|
||||
stateMachine.SetCurrentState(newState);
|
||||
}
|
||||
}
|
||||
}
|
@ -14,11 +14,15 @@ namespace Characters.Enemy.States
|
||||
|
||||
public override void Enter()
|
||||
{
|
||||
if (!_enemy.isServer) return;
|
||||
|
||||
_enemy.SetAimRigWeight(1f);
|
||||
}
|
||||
|
||||
public override void Update()
|
||||
{
|
||||
if (!_enemy.isServer) return;
|
||||
|
||||
_enemy.agent.destination = _enemy.target.position;
|
||||
|
||||
float distance = Vector3.Distance(_enemy.target.transform.position, _enemy.transform.position);
|
||||
@ -40,12 +44,14 @@ namespace Characters.Enemy.States
|
||||
}
|
||||
else
|
||||
{
|
||||
_enemy.stateMachine.SetCurrentState(EnemyState.Idle);
|
||||
_enemy.state = EnemyState.Idle;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Exit()
|
||||
{
|
||||
if (!_enemy.isServer) return;
|
||||
|
||||
_enemy.target = null;
|
||||
|
||||
_enemy.SetAimRigWeight(0f);
|
||||
|
@ -15,22 +15,28 @@ namespace Characters.Enemy.States
|
||||
|
||||
public override void Enter()
|
||||
{
|
||||
if (!_enemy.isServer) return;
|
||||
|
||||
_enemy.SetSpeedMul(0f);
|
||||
_enemy.animator.SetBool(DanceAnimHash, true);
|
||||
}
|
||||
|
||||
public override void Update()
|
||||
{
|
||||
if (!_enemy.isServer) return;
|
||||
|
||||
var stateInfo = _enemy.animator.GetCurrentAnimatorStateInfo(0);
|
||||
|
||||
if (stateInfo.shortNameHash == DanceAnimHash && stateInfo.normalizedTime >= 1)
|
||||
{
|
||||
_enemy.stateMachine.SetCurrentState(EnemyState.Patrol);
|
||||
_enemy.state = EnemyState.Patrol;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Exit()
|
||||
{
|
||||
if (!_enemy.isServer) return;
|
||||
|
||||
_enemy.animator.SetBool(DanceAnimHash, false);
|
||||
_enemy.SetSpeedMul(1f);
|
||||
}
|
||||
|
@ -21,12 +21,15 @@ namespace Characters.Enemy.States
|
||||
|
||||
public override void Enter()
|
||||
{
|
||||
if (!_enemy.isServer) return;
|
||||
|
||||
_enemy.SetAimRigWeight(0f);
|
||||
}
|
||||
|
||||
public override void Update()
|
||||
{
|
||||
|
||||
if (!_enemy.isServer) return;
|
||||
|
||||
float sortDistance = float.MaxValue;
|
||||
foreach (var player in _networkManager.alive)
|
||||
{
|
||||
@ -41,7 +44,7 @@ namespace Characters.Enemy.States
|
||||
|
||||
if (_enemy.target != null)
|
||||
{
|
||||
_enemy.stateMachine.SetCurrentState(EnemyState.Chase);
|
||||
_enemy.state = EnemyState.Chase;
|
||||
}
|
||||
|
||||
var remainingDistance = _enemy.agent.GetPathRemainingDistance();
|
||||
|
@ -21,17 +21,24 @@ namespace Characters.Enemy.States
|
||||
|
||||
public override void Enter()
|
||||
{
|
||||
_enemy.canAttack = false;
|
||||
_enemy.target = null;
|
||||
|
||||
_enemy.SetSpeedMul(0f);
|
||||
_enemy.GetComponent<NetworkAnimator>().SetTrigger(DamageAnimHash);
|
||||
_enemy.hitVFX.Stop();
|
||||
_enemy.hitVFX.Play();
|
||||
if (_enemy.isServer)
|
||||
{
|
||||
_enemy.canAttack = false;
|
||||
_enemy.target = null;
|
||||
|
||||
_task = new Task(GetStunned());
|
||||
_enemy.SetSpeedMul(0f);
|
||||
_enemy.GetComponent<NetworkAnimator>().SetTrigger(DamageAnimHash);
|
||||
|
||||
_task = new Task(GetStunned());
|
||||
}
|
||||
else
|
||||
{
|
||||
_enemy.hitVFX.Stop();
|
||||
_enemy.hitVFX.Play();
|
||||
}
|
||||
}
|
||||
|
||||
[Server]
|
||||
public override void ReEnter()
|
||||
{
|
||||
_task.Stop();
|
||||
@ -40,6 +47,8 @@ namespace Characters.Enemy.States
|
||||
|
||||
public override void Exit()
|
||||
{
|
||||
if (!_enemy.isServer) return;
|
||||
|
||||
_task.Stop();
|
||||
_enemy.SetSpeedMul(1f);
|
||||
|
||||
@ -50,7 +59,7 @@ namespace Characters.Enemy.States
|
||||
{
|
||||
yield return new WaitForSeconds(6);
|
||||
|
||||
_enemy.stateMachine.SetCurrentState(EnemyState.Patrol);
|
||||
_enemy.state = EnemyState.Patrol;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user