Example #1
0
    private bool changeFireRateRunning; //para nao mudar de novo enquanto rodando

    // Use this for initialization
    void Start()
    {
        audioSource = gameObject.GetComponent <AudioSource>(); //pegar audio source

        //GameObject bulletSpawnn = GameObject.Find("BulletSpawn");
        bulletSpawn = gameObject.transform.GetChild(0);                                                                  //pegar bulletSpawn

        BoxCollider2D gunBoxCollider2d = gameObject.GetComponent <BoxCollider2D>();                                      //posicionar bulletspawn no fim da arma
        float         initialPosX      = transform.localPosition.x + gunBoxCollider2d.size.x;
        Vector3       bulletSpawnPos   = new Vector3(initialPosX, transform.localPosition.y, transform.localPosition.z); // + transform.right;

        bulletSpawn.transform.localPosition = bulletSpawnPos;
        //bulletSpawn.SetPositionAndRotation(bulletSpawnPos, bulletSpawn.rotation);

        user = gameObject.transform.parent.gameObject.transform.parent.gameObject; //pegar usuario da arma (partindo do pressuposto que a arma esta a um GunPivot abaixo do objeto)
        //target = user.GetComponent<EnemyControllerMonkey>().target; // jeito 1 de pegar o target
        IGetTarget myRef = user.GetComponent(typeof(IGetTarget)) as IGetTarget;    //jeito 2

        target = myRef.GetTarget();
        //Debug.Log("Target Name: " + target.name);

        enemyControllerMonkey = user.GetComponent <EnemyControllerMonkey>();

        tempo           = 0f;
        canLookAtTarget = false;

        collisionMask = 1 << LayerMask.NameToLayer("PlayerBullet") | 1 << LayerMask.NameToLayer("EnemyBullet") | 1 << LayerMask.NameToLayer("Enemy") | 1 << LayerMask.NameToLayer("TestLayerMap") | 1 << LayerMask.NameToLayer("CameraWal") | 1 << LayerMask.NameToLayer("CameraCol"); //| 1 << LayerMask.NameToLayer("Character") ; //pegar layer corrente (bit shift + bit or)
        collisionMask = ~collisionMask;                                                                                                                                                                                                                                                //todas menos as selecionadas (inverter)
    }
    private void Awake()
    {
        gameManager = InstanceManager <GameManager> .GetInstance("GameManager");

        objectPooler = InstanceManager <ObjectPooler> .GetInstance("ObjectPooler");

        gameManager.Player = gameObject;

#if UNITY_ANDROID
        targetGetter = new AndroidTargetGetter();
#elif UNITY_STANDALONE || UNITY_EDITOR || UNITY_WEBGL
        targetGetter = new PCTargetGetter();
#endif
    }