Exemple #1
0
    public void Shoot(Vector3 origin, Vector3 dir)
    {
        if (timer <= 0)
        {
            //bullet = Instantiate(bulletPrefab, transform.position, Quaternion.identity);
            timer = cooldown;
            Debug.DrawRay(transform.position, dir);

            // eventEmitter.PlaySFXOneShot(FMODEvents.events[(int)FMODEvents.Guns.LASER_SHOT], transform.position);
            int eventIndex;
            if (gameObject.name.Contains("glock 1"))
            {
                eventIndex = eventEmitter.StartEventThatFollows(FMODEvents.events[(int)FMODEvents.Guns.GLOCK_SHOT], gameObject, gameObject.GetComponent <Rigidbody>());
            }
            else
            {
                eventIndex = eventEmitter.StartEventThatFollows(FMODEvents.events[(int)FMODEvents.Guns.LASER_SHOT], gameObject, gameObject.GetComponent <Rigidbody>());
            }

            eventEmitter.PlayEventInstance(eventIndex);

            particles.Play();

            RaycastHit hit;

            bool onHit = Physics.Raycast(origin, dir, out hit, 1000f, layermask);
            if (onHit)
            {
                line.enabled = true;
                Vector3[] points =
                {
                    startOfLine.transform.position,
                    hit.point
                };
                line.SetPositions(points);
                if (isControllable)
                {
                    Debug.Log(hit.collider.gameObject.name);
                    hit.collider.GetComponent <HP>()?.photonView.RPC("Damage", Photon.Pun.RpcTarget.All, damage);
                    if (hit.collider.GetComponent <HP>()?.IsDead() ?? false)
                    {
                        GetComponentInParent <Score>()?.photonView.RPC("AddPoint", RpcTarget.All);
                    }
                }
                lineTimer = 0.3f;
            }
        }
    }
Exemple #2
0
    // Start is called before the first frame update
    void Start()
    {
        eventEmitter = CustomEventEmitter.instance;

        Cursor.lockState = CursorLockMode.Locked;
        controller       = GetComponent <CharacterController>();

        eventIndex = eventEmitter.StartEventThatFollows(FMODEvents.events[(int)FMODEvents.Player.WALK], gameObject, GetComponentInChildren <Rigidbody>());
    }
Exemple #3
0
    // Start is called before the first frame update
    void Start()
    {
        eventEmitter = CustomEventEmitter.instance;

        Cursor.lockState = CursorLockMode.Locked;
        controller       = GetComponent <CharacterController>();
        if (!isControllable)   //if (!photonView.IsMine) {
        {
            GetComponentInChildren <Camera>().enabled = false;

            AudioListener al = GetComponentInChildren <AudioListener>();
            if (al)
            {
                al.enabled = false;
            }

            GetComponentInChildren <StudioListener>().enabled = false;
        }

        eventIndex = eventEmitter.StartEventThatFollows(FMODEvents.events[(int)FMODEvents.Player.WALK], gameObject, GetComponentInChildren <Rigidbody>());
        Debug.Log(eventIndex);
    }
Exemple #4
0
    // Update is called once per frame
    void Update()
    {
        if (!photonView.IsMine)
        {
            return;
        }
        List <GameObject> enemy;

        enemy = new List <GameObject>();
        foreach (Player p in PhotonNetwork.PlayerListOthers)
        {
            enemy.Add((GameObject)p.TagObject);
        }

        GameObject nearestEnemy = null;
        float      distance     = Mathf.Infinity;

        foreach (GameObject go in enemy)
        {
            if (go)
            {
                float goDist = Vector3.Distance(transform.position, go.transform.position);
                if (goDist < distance)
                {
                    distance     = goDist;
                    nearestEnemy = go;
                }
            }
            else
            {
                continue;
            }
        }

        if (!nearestEnemy)
        {
            return;
        }

        distance = Vector3.Distance(transform.position, nearestEnemy.transform.position);
        //Parâmetro vai de 0 a 10, dividir valor por 3
        distance = distance / 3;

        if (distance <= 10)
        {
            if (!started)
            {
                started = true;
                // print(FMODEvents.events[(int)FMODEvents.General.ENEMY_CLOSE]);
                // eventIndex = eventEmitter.StartEventInstance(FMODEvents.events[(int)FMODEvents.General.ITEM_IDLE]);
                eventIndex = eventEmitter.StartEventThatFollows(FMODEvents.events[(int)FMODEvents.General.ENEMY_CLOSE], gameObject, GetComponentInChildren <Rigidbody>());
                eventEmitter.PlayEventInstance(eventIndex);
            }
            else
            {
                eventEmitter.SetLocalParameter(FMODEvents.LocalParameters.Distance.ToString(), distance, eventIndex);
            }
        }
        else
        {
            if (started)
            {
                eventEmitter.StopInstance(eventIndex, true);
                started = false;
            }
        }

        // print(distance);
    }