// Update is called once per frame void Update() { if (SRUtil.Detect(manager.sight, 1, manager.playerCC)) { manager.SetState(SlimeState.CHASE); } }
// Update is called once per frame void FixedUpdate() { SRUtil.SRMove(manager.cc, manager.transform, manager.marker.position, manager.stat.moveSpeed, manager.stat.rotateSpeed, manager.stat.fallSpeed); Vector3 diff = manager.marker.position - transform.position; diff.y = 0; if (diff.sqrMagnitude < 0.1f * 0.1f) { manager.SetState(PlayerState.IDLE); return; } }
// Update is called once per frame void Update() { SRUtil.SRMove(manager.cc, manager.transform, manager.target.position, manager.stat.moveSpeed, manager.stat.rotateSpeed, manager.stat.fallSpeed); Vector3 diff = manager.target.position - transform.position; diff.y = 0; if (diff.sqrMagnitude < manager.stat.attackRange * manager.stat.attackRange) { manager.SetState(PlayerState.ATTACK); return; } }
// Update is called once per frame void Update() { if (SRUtil.Detect(manager.sight, 1, manager.playerCC)) { manager.SetState(SlimeState.CHASE); } SRUtil.SRMove(manager.cc, manager.transform, goal, manager.stat.moveSpeed, manager.stat.rotateSpeed, manager.stat.fallSpeed); Vector3 diff = goal - transform.position; diff.y = 0; if (diff.sqrMagnitude < 0.1f * 0.1f) { manager.SetState(SlimeState.IDLE); return; } }
// Update is called once per frame void Update() { if (manager.playerCC != null) { if (!SRUtil.Detect(manager.sight, 1, manager.playerCC)) { manager.SetState(SlimeState.IDLE); } SRUtil.SRMove(manager.cc, manager.transform, manager.playerCC.transform.position, manager.stat.moveSpeed, manager.stat.rotateSpeed, manager.stat.fallSpeed); Vector3 diff = manager.playerCC.transform.position - transform.position; diff.y = 0; if (diff.sqrMagnitude < manager.stat.attackRange * manager.stat.attackRange) { manager.SetState(SlimeState.ATTACK); return; } } }
// Update is called once per frame void Update() { if (manager.target != null) { if (manager.target.activeSelf == false) { manager.SetState(UnitState.READY); return; } if (Vector3.Distance(this.transform.position, manager.target.transform.position) <= manager.stat.attackRange) { manager.SetState(UnitState.ATTACK); } else { SRUtil.SRMove(manager.cc, this.transform, manager.target.transform.position, manager.stat.moveSpeed, manager.stat.rotateSpeed, manager.stat.fallSpeed); } } else { manager.SetState(UnitState.READY); } }