Ejemplo n.º 1
0
        EmmitBullet(Quaternion direction)
        {
            // create Bullet object
            GameObject Temp_Bullet_Handeler;

            Temp_Bullet_Handeler = Instantiate(Fire,
                                               transform.position,
                                               direction) as GameObject;
            Temp_Bullet_Handeler.SetActive(true);

            // Bullet does not collise with Boom or Bullet
            Utils.IgnoreCollision(Temp_Bullet_Handeler, "Boom");
            Utils.IgnoreCollision(Temp_Bullet_Handeler, "Bullet");

            // give the fire initial speed
            Vector3 velocity = Temp_Bullet_Handeler.transform.TransformDirection(Vector3.forward * 10.0f);

            Temp_Bullet_Handeler.GetComponent <Rigidbody>().velocity = velocity;
        }
Ejemplo n.º 2
0
        DiscreteStep(int Action_)
        {
            base.DiscreteStep(Action_);

            Vector3 PalyerVelocity = Player.transform.InverseTransformVector(Player.GetComponent <Rigidbody>().velocity);

            PalyerVelocity = Vector3.zero;

            switch (Action_)
            {
            case Right:
                Player.transform.eulerAngles = new Vector3(
                    Player.transform.eulerAngles.x,
                    transform.eulerAngles.y + 90.0f,
                    Player.transform.eulerAngles.z);
                PalyerVelocity.z = MoveSpeed;
                break;

            case Left:
                Player.transform.eulerAngles = new Vector3(
                    Player.transform.eulerAngles.x,
                    transform.eulerAngles.y - 90.0f,
                    Player.transform.eulerAngles.z);
                PalyerVelocity.z = MoveSpeed;
                break;

            case Forward:
                Player.transform.eulerAngles = new Vector3(
                    Player.transform.eulerAngles.x,
                    transform.eulerAngles.y + 0.0f,
                    Player.transform.eulerAngles.z);
                PalyerVelocity.z = MoveSpeed;
                break;

            case Backward:
                Player.transform.eulerAngles = new Vector3(
                    Player.transform.eulerAngles.x,
                    transform.eulerAngles.y + 180.0f,
                    Player.transform.eulerAngles.z);
                PalyerVelocity.z = MoveSpeed;
                break;

            case Attack:
                if ((NumBullet > 0) && !Reloading)
                {
                    GameObject Temp_Bullet_Handeler;
                    Temp_Bullet_Handeler = Instantiate(Bullet, BulletEmitterForward.transform.position,
                                                       BulletEmitterForward.transform.rotation) as GameObject;
                    Temp_Bullet_Handeler.SetActive(true);
                    NumBullet -= 1.0f;
                    UIPercentageBars["AM"].UpdatePercentage(NumBullet / FullNumBullet);
                    if (NumBullet < 1.0f)
                    {
                        Reloading = true;
                    }
                }
                break;

            default:
                break;
            }

            Player.GetComponent <Rigidbody>().velocity = Player.transform.TransformVector(PalyerVelocity);

            if (Reloading)
            {
                NumBullet += NumBulletPerLoad;
                UIPercentageBars["AM"].UpdatePercentage(NumBullet / FullNumBullet);
                if (NumBullet >= FullNumBullet)
                {
                    Reloading = false;
                }
            }
        } // DiscreteStep