void Idle() { stateTime += Time.deltaTime; if (stateTime > idleStateMaxTime) { stateTime = 0.0f; spiderState = SPIDERSTATE.move; } }
void OnCollisionEnter(Collision coll) { if (spiderState == SPIDERSTATE.NONE || spiderState == SPIDERSTATE.DEAD) { return; } if (coll.gameObject.tag != "Player") { return; } spiderState = SPIDERSTATE.DAMAGE; }
void OnCollisionEnter(Collision collision) { if (spiderState == SPIDERSTATE.none || spiderState == SPIDERSTATE.dead) { return; } if (collision.gameObject.layer == LayerMask.NameToLayer("boom")) { spiderState = SPIDERSTATE.damage; } }
void Dead() { //DeadTime += Time.deltaTime; //animation["death"].speed = 0.5f; //animation.Play("death"); StartCoroutine(DeadProcess()); spiderState = SPIDERSTATE.none; // ScoreManager.Instance().myScore += score; // if(DeadTime>1.0f) // { // Destroy(gameObject); //} }
void Damage() { --hp; // AudioManager.Instance().PlaySfx(clip); // animation["damage"].speed = 0.5f; // animation.Play("damage"); // animation.PlayQueued("iddle", QueueMode.CompleteOthers); stateTime = 0.0f; spiderState = SPIDERSTATE.idle; if (hp < 0) { spiderState = SPIDERSTATE.dead; } }
void Attack() { stateTime += Time.deltaTime; if (stateTime > attackTime) { stateTime = 0.0f; // animation.Play("attack_Melee"); // animation.PlayQueued("iddle", QueueMode.CompleteOthers); // playerState.DamageByEnemy(); } distance = (target.position - transform.position).magnitude; if (distance > attackRange) { spiderState = SPIDERSTATE.idle; } }
void Move() { // animation.Play("walk"); distance = (target.position - transform.position).magnitude; if (distance < attackRange) { spiderState = SPIDERSTATE.attack; stateTime = attackTime; } else { Vector3 dir = target.position - transform.position; dir.y = 0.0f; dir.Normalize(); characterController.SimpleMove(dir * speed); transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(dir), speed * Time.deltaTime); } }
// Update is called once per frame void Update() { switch (spiderState) { case SPIDERSTATE.IDLE: stateTime += Time.deltaTime; if (stateTime > idleStateMaxTime) { stateTime = 0.0f; spiderState = SPIDERSTATE.MOVE; } break; case SPIDERSTATE.MOVE: GetComponent <Animation> ().Play("walk"); float distance = (target.position - transform.position).magnitude; if (distance < attackableRange) { spiderState = SPIDERSTATE.ATTACK; stateTime = attackStateMaxTime; } else { Vector3 dir = target.position - transform.position; dir.y = 0.0f; dir.Normalize(); playerController.SimpleMove(dir * speed); transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(dir), rotationSpeed * Time.deltaTime); } break; case SPIDERSTATE.ATTACK: stateTime += Time.deltaTime; if (stateTime > attackStateMaxTime) { stateTime = 0.0f; GetComponent <Animation> ().Play("attack_Melee"); GetComponent <Animation> ().PlayQueued("iddle", QueueMode.CompleteOthers); } float distance1 = (target.position - transform.position).magnitude; if (distance1 > attackableRange) { spiderState = SPIDERSTATE.MOVE; } break; case SPIDERSTATE.DAMAGE: --hp; GetComponent <Animation> () ["damage"].speed = 0.5f; GetComponent <Animation> ().Play("damage"); GetComponent <Animation> ().PlayQueued("iddle", QueueMode.CompleteOthers); stateTime = 0.0f; spiderState = SPIDERSTATE.IDLE; if (hp <= 0) { spiderState = SPIDERSTATE.DEAD; } break; case SPIDERSTATE.DEAD: StartCoroutine(DeadProcess()); spiderState = SPIDERSTATE.NONE; break; } }
void InitSpider() { spiderState = SPIDERSTATE.IDLE; GetComponent <Animation> ().Play("iddle"); }
void InitSpider() { hp = 5; spiderState = SPIDERSTATE.idle; // animation.Play("iddle"); }