예제 #1
0
 private float currentWaitTime; //巡逻点的等待时间,默认为5
 public PatrolState(ZombieAI zAI)
 {
     zombieAI        = zAI;
     zombieMove      = zombieAI.GetComponent <ZombieMovement>();
     waypointIndex   = 0;
     currentWaitTime = 5f;
 }
예제 #2
0
 void Start()
 {
     zombie          = GetComponent <Zombie>();
     zombieMovement  = GetComponent <ZombieMovement>();
     playerPosition  = GetComponent <PlayerPosition>();
     slomoController = FindObjectOfType <SlomoController>();
 }
예제 #3
0
    void Start()
    {
        myTransform = transform;
        movScript = GetComponent<ZombieMovement> ();

        if (isServer)
            StartCoroutine ( Attack () );
    }
    void Awake()
    {
        zombieMovement = GetComponent <ZombieMovement>();
        zombieLife     = GetComponent <Life>();

        zombieMovement.OnAttackRange.AddListener(FocusOnTarget);
        zombieMovement.OutOfAttackRange.AddListener(LeaveTarget);
    }
예제 #5
0
 void Start()
 {
     zombieAnimator  = GetComponent <Animator>();
     zombieRigidBody = GetComponent <Rigidbody2D>();
     zombieHealth    = GetComponent <ZombieHealth>();
     zombieMovement  = GetComponent <ZombieMovement>();
     zombieIK2D      = GetComponent <UnityEngine.U2D.IK.IKManager2D>();
 }
예제 #6
0
 void Start()
 {
     zombie         = GetComponent <Zombie>();
     zombieHealth   = GetComponent <ZombieHealth>();
     zombieMovement = GetComponent <ZombieMovement>();
     player         = FindObjectOfType <Player>();
     playerPosition = GetComponent <PlayerPosition>();
 }
예제 #7
0
 public ChasingState(ZombieAI zAI)
 {
     zombieAI   = zAI;
     zombieMove = zombieAI.GetComponent <ZombieMovement>();
     animator   = zombieAI.GetComponent <Animator>();
     timer      = GameObject.FindGameObjectWithTag("GameController").GetComponent <Timer>();
     isScreamed = false;
     attacked   = false;
 }
예제 #8
0
 private void OnCollisionEnter(Collision collision)
 {
     if (collision.gameObject.tag == "Interactable")
     {
         ZombieMovement movement = GetComponent <ZombieMovement>();
         movement.Death();
         audio.Play();
     }
 }
예제 #9
0
    private void Start()
    {
        anim           = GetComponentInChildren <Animator>();
        player         = FindObjectOfType <Player.Player>();
        rb             = GetComponent <Rigidbody2D>();
        zombieMovement = GetComponent <ZombieMovement>();
        path           = GetComponent <AIPath>();

        ChangeState(ZombieStates.Stand);
    }
예제 #10
0
    // Use this for initialization
    void Start()
    {
        animator            = GetComponent <Animator>();
        zombieAI            = GetComponent <ZombieAI>();
        zombieAudio         = GetComponent <ZombieAudio>();
        bodyParts           = GetComponentsInChildren <Rigidbody>();
        zombieMovement      = GetComponent <ZombieMovement>();
        characterController = GetComponent <CharacterController>();

        EnableRagdoll(false);
    }
예제 #11
0
    // Start is called before the first frame update
    void Start()
    {
        _player = FindObjectOfType <Player>();

        _rigidbody2D = GetComponent <Rigidbody2D>();

        _animator = GetComponentInChildren <Animator>();

        _zombieMovement = GetComponent <ZombieMovement>();

        ChangeState(ZombieStates.Stand); // состояние зомби при старте игры stand(стоит на месте)
    }
예제 #12
0
    private void Start()
    {
        var player = GameManager.Instance.player.transform;

        if (player != null && behavior.CurrentState != State.TRIGGER)
        {
            Target = player;
        }
        Init();
        _movement = GetComponent <ZombieMovement>();
        GetComponent <DamageSystem>().onTargetDied    += KillZombie;
        GetComponent <DamageSystem>().onTargetDamaged += d => DamageTaken();
    }
예제 #13
0
    void Awake()
    {
        animator       = GetComponent <Animator>();
        agent          = GetComponent <NavMeshAgent>();
        zombieMovement = GetComponent <ZombieMovement>();
        zombieLife     = GetComponent <Life>();

        zombieLife.OnHit.AddListener(HitAnimation);
        zombieLife.OnDeath.AddListener(DeathAnimation);

        zombieMovement.OnAttackRange.AddListener(AttackAnimation);
        zombieMovement.OutOfAttackRange.AddListener(StopAttacking);
    }
예제 #14
0
    void OnTriggerEnter(Collider col)
    {
        Rigidbody rig = col.transform.GetComponent <Rigidbody>();

        if (rig == null)
        {
            rig = col.transform.root.GetComponent <Rigidbody>();
        }
        ZombieMovement zmov = col.transform.root.GetComponent <ZombieMovement>();

        FallDeath falldeath = col.transform.root.GetComponentInChildren <FallDeath>();

        if (falldeath != null)
        {
            falldeath.FallingAnim();
        }

        Health hcol = col.transform.root.GetComponentInChildren <Health>();

        if (hcol != null)
        {
            hcol.m_killedbyPlayer = true;
        }

        if (rig != null)
        {
            GameObject tSmack = Instantiate(smackParticle, transform.position, transform.rotation);
            cShake.ShakeCamera(0.015f, 0.03f);

            PlayHitSound(col.transform.position);

            if (zmov != null)
            {
                zmov.DisableMovement(1);
            }
            Vector3 moveDir = (col.transform.position - transform.root.position).normalized;

            if (zmov != null && !zmov.unstopable)
            {
                rig.constraints = RigidbodyConstraints.None;
                rig.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezeRotationZ | RigidbodyConstraints.FreezeRotationY;
                rig.useGravity  = true;
            }
            rig.AddForceAtPosition(moveDir * forceMult, transform.root.position, ForceMode.Impulse);
        }
    }
예제 #15
0
    // Start is called before the first frame update
    void Start()
    {
        movement = GetComponent <ZombieMovement>();
        anim     = GetComponent <ZombieAnimation>();

        alive = true;

        if (GameplayController.instance.zombieGoal == ZombieGoal.PLAYER)
        {
            target = GameObject.FindGameObjectWithTag(TagManager.PLAYER_TAG).transform;
        }
        else if (GameplayController.instance.zombieGoal == ZombieGoal.FENCE)
        {
            GameObject[] fences = GameObject.FindGameObjectsWithTag(TagManager.FENCE_TAG);
            target = fences[Random.Range(0, fences.Length)].transform;
        }
    }
예제 #16
0
 private void Awake()
 {
     zombieMovement = GameObject.FindObjectOfType <ZombieMovement>();
     ghostMovement  = GameObject.FindObjectOfType <GhostMovement>();
     camera         = GameObject.FindObjectOfType <CameraFollowPlayer>();
 }
예제 #17
0
 void Start()
 {
     zombieMovement = GetComponent <ZombieMovement>();
     zombieHealth   = GetComponent <ZombieHealth>();
 }
예제 #18
0
 public ZombieInfo(GameObject zombie)
 {
     movement = zombie.GetComponent <ZombieMovement>();
     attack   = zombie.GetComponent <ZombieAttack>();
 }
예제 #19
0
 // Use this for initialization
 void Start()
 {
     zombie = ZombieMovement.FindObjectOfType <ZombieMovement>();
 }
예제 #20
0
 private void Start()
 {
     controller = GetComponent <ZombieMovement>();
 }
예제 #21
0
 private void Awake()
 {
     _zombieMovement = GetComponent <ZombieMovement>();
 }
 // Use this for initialization
 void Start()
 {
     zombMove = zombie.GetComponent<ZombieMovement> ();
     InvokeRepeating ("spawnZombie", varTime, repeatRate);
 }
예제 #23
0
 void Start()
 {
     anim = this.GetComponent<Animator> ();
     movement = this.GetComponent<ZombieMovement> ();
     players = Health.FindObjectsOfType<Health> ();
 }