Example #1
0
    void Idle()
    {
        stateTime += Time.deltaTime;

        if (stateTime > idleStateMaxTime)
        {
            stateTime   = 0.0f;
            spiderState = SPIDERSTATE.move;
        }
    }
Example #2
0
 void OnCollisionEnter(Collision coll)
 {
     if (spiderState == SPIDERSTATE.NONE || spiderState == SPIDERSTATE.DEAD)
     {
         return;
     }
     if (coll.gameObject.tag != "Player")
     {
         return;
     }
     spiderState = SPIDERSTATE.DAMAGE;
 }
Example #3
0
    void OnCollisionEnter(Collision collision)
    {
        if (spiderState == SPIDERSTATE.none || spiderState == SPIDERSTATE.dead)
        {
            return;
        }

        if (collision.gameObject.layer == LayerMask.NameToLayer("boom"))
        {
            spiderState = SPIDERSTATE.damage;
        }
    }
Example #4
0
    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);
        //}
    }
Example #5
0
    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;
        }
    }
Example #6
0
    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;
        }
    }
Example #7
0
    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);
        }
    }
Example #8
0
    // 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;
        }
    }
Example #9
0
 void InitSpider()
 {
     spiderState = SPIDERSTATE.IDLE;
     GetComponent <Animation> ().Play("iddle");
 }
Example #10
0
 void InitSpider()
 {
     hp          = 5;
     spiderState = SPIDERSTATE.idle;
     // animation.Play("iddle");
 }