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

            EnemyPatrol  = new EnemyPatrol(agent, patrolPoints);
            PlayerCombat = new Combat(
                transform: transform,
                adversaryLayers: playerLayers,
                attackRadius: attackRange);

            Visibility = new EnemyVisibility(
                transform: transform,
                target: target,
                maxAngle: visibilityAngle,
                maxDistance: visibilityDistance,
                ignoreLayers: visibilityIgnoreLayers);

            Hearing = new EnemyHearing(
                transform: transform,
                target: target,
                maxDistance: hearingDistance
                );

            state = State.None;
        }
示例#2
0
 // Use this for initialization
 void Start()
 {
     NavM         = GetComponent <NavMeshAgent>();
     _isAlive     = gameObject.GetComponent <EnemyHealth>();
     _isPatroling = gameObject.GetComponent <EnemyController>();
     _isSearching = gameObject.GetComponent <EnemyController>();
     _isDetecting = gameObject.GetComponent <EnemyHearing>();
     //waypoints = GameObject.FindGameObjectsWithTag("Waypoint");
     waypointInd = Random.Range(0, waypoints.Length);
 }
    void Start()
    {
        alertStateTimer = alertStateTimerLength;
        mayBeAlertTimer = mayBeAlertTimerLength;

        arm          = gameObject.transform.Find("EnemyArm");
        enemySight   = gameObject.transform.Find("Sight");
        enemyHearing = gameObject.transform.Find("Hearing");
        enemies      = GameObject.FindGameObjectsWithTag("Enemy");

        thisEnemyCollider = gameObject.GetComponent <CapsuleCollider2D>();

        rooms = GameObject.FindGameObjectsWithTag("Room");
        patrolPointContainer = GameObject.Find("PatrolPoints");

        currentPatrolIndex = 0;
        currentPatrolPoint = enemyPatrolPoints[currentPatrolIndex];

        stairwaysGoingUp   = GameObject.FindGameObjectsWithTag("StairsUp");
        stairwaysGoingDown = GameObject.FindGameObjectsWithTag("StairsDown");

        currentState = startState;

        player = Player.instance;
        playerControllerScript = player.GetComponent <PlayerController>();
        enemySightScript       = enemySight.GetComponent <EnemySight>();
        enemyHearingScript     = enemyHearing.GetComponent <EnemyHearing>();
        enemyScript            = gameObject.GetComponent <Enemy>();
        armRotationScript      = arm.GetComponent <ArmRotation>();

        anim = GetComponent <Animator>();

        enemyLocalScale = transform.localScale;

        rb = GetComponent <Rigidbody2D>();

        if (facingRight == false)
        {
            enemyLocalScale.x   *= -1;
            transform.localScale = enemyLocalScale;
            armRotationScript.enemyRotationOffset = 180;
            facingRight = false;
        }

        playerWeapons = GameObject.Find("WeaponPool").transform.GetComponentsInChildren <BoxCollider2D>();
        foreach (BoxCollider2D playerWeaponCollider in playerWeapons)
        {
            Physics2D.IgnoreCollision(playerWeaponCollider, thisEnemyCollider);
        }
    }
示例#4
0
    void Update()
    {
        if (activateSound)
        {
            soundPos = transform.position;
            //soundPos.y = 1.5f;

            Collider[] colliders = Physics.OverlapSphere(soundPos, soundRadius);
            foreach (Collider hit in colliders)
            {
                enemyHearingScript = hit.gameObject.GetComponent <EnemyHearing>();
                if (enemyHearingScript != null)
                {
                    enemyHearingScript.heardSomething   = true;
                    enemyHearingScript.lastDetectionPos = soundPos;
                }
            }
        }
    }