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

        if (mSizeCounter < laser_size)
        {
            mSizeCounter += 20.0f * Time.deltaTime;

            if (mSizeCounter > laser_size)
            {
                mSizeCounter = laser_size;
                GameObject laser = MerlionBoss.Instantiate(owner.mSingleLaserPrefab, new Vector3(0.0f, 0.0f, 0.0f), Quaternion.Euler(0.0f, 0.0f, -90.0f)) as GameObject;
                laser.transform.position = new Vector2(player_x, laser.transform.position.y);
            }

            owner.mLaserMouth.transform.localScale = new Vector2(1.0f, 1.0f);
            mLaserTransform.localScale             = new Vector3(laser_size, mSizeCounter, 0.0f);

            return;
        }

        mEndDelay -= Time.deltaTime;
        if (mEndDelay <= 0.0f)
        {
            owner.mStateMachine.ChangeState(0);
        }
    }
コード例 #2
0
 public ML_IdleState(MerlionBoss owner)
 {
     this.owner = owner;
 }
コード例 #3
0
 public ML_SingleBeamState(MerlionBoss owner)
 {
     this.owner      = owner;
     mLaserTransform = owner.mLaser.transform;
 }
コード例 #4
0
 public ML_HeadAttackState(MerlionBoss owner)
 {
     this.owner    = owner;
     mThrower      = owner.mHeadSpawner.GetComponent <MerlionHeadSpawner>();
     owner.mImmune = true;
 }
コード例 #5
0
 public ML_TailAttackState(MerlionBoss owner)
 {
     this.owner    = owner;
     mThrower      = owner.mVolleySpawner.GetComponent <MerlionAcrBulletSpawner>();
     mSpawnCounter = mSpawnInterval;
 }
コード例 #6
0
 public ML_LaserAttackState(MerlionBoss owner)
 {
     this.owner      = owner;
     mLaserTransform = owner.mLaser.transform;
     mLaser          = owner.mLaser2.GetComponent <MerlionFowardLaser>();
 }