示例#1
0
    void Start()
    {
        agent = GetComponent <NavMeshAgent>();

        player = GameObject.Find("OVRPlayerController");

        soundObject  = GameObject.Find("SoundManager");
        soundManager = soundObject.GetComponent <SoundManager>();
        soundPlayer  = gameObject.GetComponentInChildren <AudioSource>();
        heroScript   = player.GetComponentInChildren <Hero>();

        NavMeshHit closestHit;

        if (NavMesh.SamplePosition(transform.position, out closestHit, 100f, NavMesh.AllAreas))
        {
            transform.position = closestHit.position;
            agent.enabled      = true;
        }

        agent.updateRotation = false;


        //simulates pede bursting out of sand
        pedeAnimate = agent.GetComponentInChildren <Animator>();
        spawned.Play();
        isSpawned = spawned.emission.enabled;
    }
    public void infect()
    {
        GameObject GameManager;

        GameManager = GameObject.Find("GameManager");

        if (!infected && !cured)
        {
            not_infected = false;
            infected     = true;
            cured        = false;
            agent.GetComponentInChildren <Renderer>().material = infected_color;
            GameManager.GetComponent <InfectionManager>().no_of_infected++;
            GameManager.GetComponent <InfectionManager>().no_of_healthy--;
            GameManager.GetComponent <InfectionManager>().NI++;
        }
    }
 // Use this for initialization
 void Start()
 {
     // agentSelected = false;
     agent = GetComponent <NavMeshAgent>();
     //Rend = GetComponent<Renderer>();
     skinRend = agent.GetComponentInChildren <SkinnedMeshRenderer>();
     //Rend.enabled = true;
     cam.enabled = false;
 }
示例#4
0
    void Start()
    {
        agent = GetComponent <NavMeshAgent>();
        agent.updateRotation = false;
        spiderAnimate        = agent.GetComponentInChildren <Animator>();

        player     = GameObject.Find("OVRPlayerController");
        heroScript = player.GetComponentInChildren <Hero>();

        soundObject  = GameObject.Find("SoundManager");
        soundManager = soundObject.GetComponent <SoundManager>();
        soundPlayer  = gameObject.GetComponentInChildren <AudioSource>();
    }
示例#5
0
    void ChasePlayer()
    {
        resetTime += Time.deltaTime;
        if (resetTime >= 2)
        {
            resetTime = 0;

            movePos = new Vector3(Random.Range(-2f, 2.75f), 0, Random.Range(0f, 4.75f));
        }

        if (Vector3.Distance(playerObj.transform.position, enemyObj.transform.position) < 0.6)
        {
            Vector3 direction = playerObj.transform.position - enemyObj.transform.position;
            playerObj.GetComponent <Rigidbody>().AddForceAtPosition(direction * 50, enemyObj.transform.position);
        }

        playerObj.SetDestination(movePos);
        enemyObj.SetDestination(playerObj.gameObject.transform.position);

        if (!playerObj.isStopped)
        {
            playerObj.GetComponentInChildren <Animator>().SetBool("Walk", true);
        }
        else
        {
            playerObj.GetComponentInChildren <Animator>().SetBool("Walk", false);
        }

        if (!enemyObj.isStopped)
        {
            enemyObj.GetComponentInChildren <Animator>().SetBool("Run", true);
        }
        else
        {
            enemyObj.GetComponentInChildren <Animator>().SetBool("Run", false);
        }
    }
示例#6
0
 public void RestartLevel()
 {
     onQuitLevel.Invoke();
     playersWagon.GetComponentInChildren <WeaponHolder>().EquippedGun.StopReloadingImmediately();
     GameManager.Instance.FadeToScene(levelName);
 }
示例#7
0
文件: AIStates.cs 项目: jonanh/GGJ18
        public IEnumerator Enter()
        {
            agent.updateRotation = false;

            var playerAgent = PlayerAgent.instance;

            // Set the animator of the character as blocking
            var animator = agent.GetComponentInChildren <Animator>();

            if (animator != null)
            {
                //animator.SetBool("Blocking", true);
            }

            while (true)
            {
                var distance =
                    (target.transform.position - playerAgent.transform.position).sqrMagnitude;

                // Rotate facing the player
                var relativePos = playerAgent.transform.position - agent.transform.position;
                var rotation    = Quaternion.LookRotation(relativePos);
                agent.transform.rotation = rotation;

                // Pushback player
                if ((Time.time - m_lastPushBackTime) >= m_pushBackCooldown)
                {
                    m_lastPushBackTime = Time.time;

                    Rigidbody rigidbody = playerAgent.gameObject.GetComponent <Rigidbody>();

                    if (rigidbody != null)
                    {
                        yield return(new WaitForFixedUpdate());

                        rigidbody.drag = 1;
                        rigidbody.AddForce(relativePos.normalized * m_force, ForceMode.Impulse);

                        Debug.Log("Pushback");
                    }
                }

                // Tries to get in between the target and the player
                if (distance < distanceThreadshold * distanceThreadshold)
                {
                    agent.destination = Vector3.Lerp(
                        target.transform.position,
                        playerAgent.transform.position, 0.5f);
                }
                else
                {
                    var direction = playerAgent.transform.position - target.transform.position;

                    agent.destination =
                        target.transform.position + direction.normalized * distanceThreadshold;
                }

                if (animator != null)
                {
                    animator.SetBool("Blocking", distance < distanceThreadshold * distanceThreadshold * 2);
                }

                yield return(null);
            }
        }