示例#1
0
    public void Execute()
    {
        if (mStartDelay > 0.0f)
        {
            mStartDelay -= Time.deltaTime;
            return;
        }

        if (mLife > 0.0f)
        {
            mSpawnCounter += Time.deltaTime;

            if (mSpawnCounter >= mSpawnInterval)
            {
                mThrower.Spawn();
                mSpawnCounter = 0.0f;
            }

            mLife -= Time.deltaTime;
            return;
        }

        mEndDelay -= Time.deltaTime;
        if (mEndDelay <= 0.0f)
        {
            owner.mStateMachine.ChangeState(0);
        }
    }
示例#2
0
    public void Execute()
    {
        if (owner.transform.position.y > -5.0f && mLife > 0.0f)
        {
            float pos_y = owner.transform.position.y - Time.deltaTime * 5.0f;
            if (pos_y < -5.0f)
            {
                pos_y = -5.0f;
            }

            owner.transform.position = new Vector3(owner.transform.position.x, pos_y, owner.transform.position.z);
            return;
        }

        owner.mAnimator.SetBool("IsLaser", true);

        if (mStartDelay > 0.0f)
        {
            mStartDelay -= Time.deltaTime;
            return;
        }

        if (mLife == 5.0f)
        {
            owner.mTailSpawner.GetComponent <MerlionTailSpawner>().Spawn();
        }

        if (mLife > 0.0f)
        {
            mSpawnCounter += Time.deltaTime;

            if (mSpawnCounter >= mSpawnInterval)
            {
                mThrower.Spawn();
                mSpawnCounter = 0.0f;
            }

            mLife -= Time.deltaTime;
            return;
        }

        owner.mAnimator.SetBool("IsLaser", false);

        if (owner.transform.position.y < -0.2f)
        {
            float pos_y = owner.transform.position.y + Time.deltaTime * 5.0f;
            if (pos_y > -0.2f)
            {
                pos_y = -0.2f;
            }

            owner.transform.position = new Vector3(owner.transform.position.x, pos_y, owner.transform.position.z);
            return;
        }

        mEndDelay -= Time.deltaTime;
        if (mEndDelay <= 0.0f)
        {
            owner.mStateMachine.ChangeState(0);
        }
    }