コード例 #1
0
    // function to create numberOFEnemies of enemies by using Prefab
    void createEnemies(int numberOFEnemies)
    {
        currentEnemyNames = new string[numberOfEnemies];
        // there are numberOFEnemies objects we want to fit between
        // yBoundryTop and yBoundryBottom
        // so we use for loop here to create all objects and for each
        // enemy we need to specify their top posiiton, bottom position
        // and they speed they will move back and forth in the Y axis
        float zonePerEnemy = (yBoundryTop - yBoundryBottom) / numberOFEnemies;

        for (int i = 0; i < numberOFEnemies; i++)
        {
            float      enemyBottomPosition = yBoundryBottom + i * zonePerEnemy;
            float      enemyTopPosition    = enemyBottomPosition + zonePerEnemy;
            GameObject clone = Instantiate(enemyPrefab,
                                           new Vector3(0, (enemyBottomPosition + enemyTopPosition) / 2, 0),
                                           Quaternion.identity) as GameObject;
            string enemyName = string.Format("enemy-{0}", i);
            currentEnemyNames[i] = enemyName;
            clone.name           = enemyName;
            EnemyMove em = clone.GetComponent <EnemyMove>();
            em.yBoundryBottom = enemyBottomPosition;
            em.yBoundryTop    = enemyTopPosition;
            EnemyWeapon ew = clone.GetComponent <EnemyWeapon>();
            ew.bulletSpeed = enemyBulletSpeed;
        }
        //increase enemyBulletSpeed each time they are re-created
        enemyBulletSpeed++;
    }
コード例 #2
0
ファイル: Sentry.cs プロジェクト: Gryzbastian/Tunelstein
 void Start()
 {
     _enemyWeapon = EnemyWeapon.CreatePistol();
     SetHP();
     SetPoints();
     _source = gameObject.GetComponentInChildren <AudioSource>();
 }
コード例 #3
0
    public override string ToString()
    {
        string stateString = "";

        // Players Weapon Type
        stateString = stateString + Weapon.ToString();
        stateString = stateString + " ";

        // Players Ammo
        stateString = stateString + AmmoAmount.ToString();
        stateString = stateString + " ";

        // Enemy Weapon Type
        stateString = stateString + EnemyWeapon.ToString();
        stateString = stateString + " ";

        // Enemy Ammo
        stateString = stateString + EnemyAmmoAmount.ToString();
        stateString = stateString + " ";

        // XCloseness to Enemy
        stateString = stateString + XDistanceToEnemy.ToString();
        stateString = stateString + " ";

        // YCloseness to Enemy
        stateString = stateString + YDistanceToEnemy.ToString();

        return(stateString);
    }
コード例 #4
0
    protected virtual IEnumerator Attack(Vector3 target, bool melee = false)
    {
        EnemyWeapon w = melee ? new EnemyFists() : weapon;

        behaviuor = Behaviour.attack;

        yield return(new WaitForSeconds(w.delay));

        Vector3 direction = Spread(w.spread) * (target - pointCenter);
        Ray     ray       = new Ray(pointCenter, direction);

        lineRend.enabled = true;
        lineRend.SetPosition(0, lineRend.transform.position);
        lineRend.SetPosition(1, pointCenter + direction * 5);
        if (audioController)
        {
            audioController.PlayOneShot(sound_shoot);
        }

        // Debug.DrawRay(pointCenter, direction, Color.green, 2f);
        //Debug.Log("shoot");
        animator.SetTrigger(w.trigger);

        RaycastAttack(ray, weapon.damage, weapon.range);

        yield return(new WaitForSeconds(1 - w.delay));

        lineRend.enabled = false;
        behaviuor        = Behaviour.idle;
    }
コード例 #5
0
ファイル: AttackState.cs プロジェクト: Nachodlv/timebot
 public AttackState(EnemyWeapon enemyWeapon, Animator animator, Mover mover, Transform player) : base(mover,
                                                                                                      animator.transform, player)
 {
     _enemyWeapon = enemyWeapon;
     _animator    = animator;
     _hasAnimator = true;
 }
コード例 #6
0
        public void Initialize()
        {
            // 默认装备,可以在后续修改其对象
            EnemyMono = Enemy.GameObjectInScene.GetComponent <IEnemyMono>();
            if (EnemyMono != null)
            {
                EnemyMono.EnemyMedi         = this;
                EnemyMono.AnimatorComponent = Enemy.animator;
                EnemyMono.Rgbd   = Enemy.Rgbd;
                EnemyMono.BdTree = Enemy.bt;
                EnemyMono.NavMeshAgentComponent = Enemy.navMeshAgent;
                EnemyWeapon = EnemyMono.iEnemyWeapon;
                EnemyMono.Initialize();
                if (EnemyWeapon != null)
                {
                    EnemyWeapon.EnemyMedi = this;
                    EnemyWeapon.Initialize();
                    EnemyMono.WeaponCollider = EnemyWeapon.WeaponCollider;
                }
                else
                {
                    Debug.LogError("iEnemyWeapon未赋值");
                }
            }

            UpdateEnemyWeapon(EnemyMono.iEnemyWeapon);
        }
コード例 #7
0
    public void RotateWeapon(EnemyWeapon _weapon, Transform targetPos)
    {
        Vector2 lookDir = _weapon.rb.position - (Vector2)targetPos.position;
        float   angle   = Mathf.Atan2(lookDir.y, lookDir.x) * Mathf.Rad2Deg + 90;

        _weapon.transform.rotation = Quaternion.Euler(0f, 0f, angle);
    }
コード例 #8
0
 private void Awake()
 {
     m_Weapon          = gameObject.GetRequiredComponent <EnemyWeapon>();
     m_Health          = gameObject.GetRequiredComponent <EnemyHealth>();
     m_Animator        = gameObject.GetRequiredComponent <EnemyAnimator>();
     m_StateController = gameObject.GetRequiredComponent <EnemyStateController>();
 }
コード例 #9
0
 override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     weapon        = animator.GetComponentInChildren <EnemyWeapon>();
     weaponTrigger = weapon.weaponTrigger;
     weaponScript  = weaponTrigger.GetComponent <AttackTriggerCollision>();
     weaponTrigger.SetActive(true);
 }
コード例 #10
0
ファイル: GoblinBoss.cs プロジェクト: dogoo3/2020_2_Project
 private void Awake()
 {
     _rigidbody2d = GetComponent <Rigidbody2D>();
     _animator    = GetComponent <Animator>();
     _weapon      = GetComponentInChildren <EnemyWeapon>();
     _enemy       = GetComponent <Enemy>();
     _weapon.InputDamage(damage);
 }
コード例 #11
0
    public static EnemyWeapon CreateMachinegun()
    {
        EnemyWeapon enemyMachinegun = new EnemyWeapon();

        enemyMachinegun._weaponDamage   = 20;
        enemyMachinegun._weaponFireRate = 0.25f;
        return(enemyMachinegun);
    }
コード例 #12
0
    public static EnemyWeapon CreatePistol()
    {
        EnemyWeapon enemyPistol = new EnemyWeapon();

        enemyPistol._weaponDamage   = 10;
        enemyPistol._weaponFireRate = 0.45f;
        return(enemyPistol);
    }
コード例 #13
0
 private void Awake()
 {
     enemyPathfinding = GetComponent <EnemyPathfinding>();
     enemyShoot       = GetComponent <EnemyShoot>();
     enemyWeapon      = transform.GetComponentInChildren <EnemyWeapon>();
     moveState        = MoveState.Roaming;
     attackState      = AttackState.Idle;
 }
コード例 #14
0
 // Start is called before the first frame update
 public override void Start()
 {
     base.Start();
     nav       = GetComponent <Navigator>();
     follow    = new FollowCommand(nav.GetController(), 5f, player, 5f);
     explosion = GetComponent <EnemyExplosion>();
     damagableBehaviour.damagable = new SuicideBoxDamagable(this, 10, 0, 0);
     nav.SetMoveCommand(follow);
 }
コード例 #15
0
 private void InitializeWeapon()
 {
     if (!weaponConfig)
     {
         return;
     }
     weapon = (EnemyWeapon)weaponConfig.Create();
     weapon.SetTurretPosition(turret);
 }
コード例 #16
0
    void Start()
    {
        shooting    = GetComponent <AudioSource>();
        enemyWeapon = GetComponentInChildren <EnemyWeapon>();

        animator = GetComponentInChildren <Animator>();
        myrender = gameObject.GetComponent <Renderer>();
        mybody   = gameObject.GetComponent <Rigidbody>();
    }
コード例 #17
0
        private Vector3 FindWeaponRangePosition(EnemyWeapon weapon)
        {
            float minRange = weapon.weaponMinRange;
            float maxRange = weapon.weaponMaxRange;
            float randomX  = Random.Range(-3f, 3f);
            float randomY  = _spawnedTop ? Random.Range(minRange, maxRange) : Random.Range(-maxRange, -minRange);

            return(new Vector3(randomX, randomY));
        }
コード例 #18
0
 private void Awake()
 {
     enemy             = GetComponent <Enemy>();
     weapon            = GetComponentInChildren <EnemyWeapon>();
     animator          = GetComponent <Animator>();
     enemyController2D = GetComponent <EnemyController2D>();
     boxCollider2D     = GetComponent <BoxCollider2D>();
     player            = GameObject.FindGameObjectWithTag(Tags.player).transform;
 }
コード例 #19
0
    // Start is called before the first frame update
    void Start()
    {
        weaponComp = GetComponent <EnemyWeapon>();
        animator   = GetComponent <Animator>();

        if (LevelsController.GetInstance() != null && LevelsController.GetInstance().currenLevel != null)
        {
            LevelsController.GetInstance().currenLevel.EnemySpawned(this);
        }
    }
コード例 #20
0
 private void Start()
 {
     weapon          = holder.spawnedWeapon;
     playerTransform = GameObject.FindGameObjectWithTag("Player").transform;
     health          = startHealth;
     timeBtwAttack   = startTimeBtwAttack;
     rb          = this.GetComponent <Rigidbody2D>();
     anim        = this.GetComponent <Animator>();
     patrolPoint = SetRandomPosition(patrolPoint, offset);
 }
コード例 #21
0
 // Start is called before the first frame update
 void Start()
 {
     playerState       = FindObjectOfType <PlayerStateScript>();
     AIController      = GetComponentInChildren <AIControllerBase>();
     enemyUIController = GetComponentInChildren <EnemyUIController>();
     playerNavPoint    = FindObjectOfType <Player>().gameObject.GetComponentInChildren <NavPoint>();
     AI_Weapon         = GetComponentInChildren <EnemyWeapon>().gameObject;
     myWeapon          = AI_Weapon.GetComponent <EnemyWeapon>();
     damageEvent.AddListener(OnEnemyDamageApplied);
 }
コード例 #22
0
ファイル: EnemyStats.cs プロジェクト: spriggan4/MyProject
    private void Start()
    {
        animator          = this.gameObject.GetComponentInChildren <Animator>();
        atkMng            = this.gameObject.GetComponent <AtkMng>();
        enemyWeapon       = this.gameObject.GetComponentInChildren <EnemyWeapon>();
        nav               = this.gameObject.GetComponent <NavMeshAgent>();
        enemyTakingDamage = this.gameObject.GetComponent <EnemyTakingDamage>();

        Equipment();
    }
コード例 #23
0
 private void Start()
 {
     rb = this.GetComponent <Rigidbody2D>();
     playerTransform = GameObject.FindGameObjectWithTag("Player").transform;
     randomSpot      = SetRandomPos(randomSpot, offset);
     anim            = this.GetComponent <Animator>();
     weapon          = holder.spawnedWeapon;
     timeBtwAttack   = startTimeBtwAttack;
     health          = startHealth / 2;
 }
コード例 #24
0
 protected virtual void Start()
 {
     controller        = GetComponent <CharacterController_lsy>();
     character         = GetComponent <Character_lsy>();
     characterWeapon   = GetComponent <CharacterWeapon_lsy>();
     playerWeapon      = GetComponent <PlayerWeapon>();
     enemyWeapon       = GetComponent <EnemyWeapon>();
     characterMovement = GetComponent <CharacterMovement_lsy>();
     animator          = GetComponent <Animator>();
 }
コード例 #25
0
 private void Start()
 {
     animator            = GetComponent <Animator>();
     enemyAI             = GetComponent <EnemyAI>();
     enemyWeapon         = GetComponent <EnemyWeapon>();
     currentWeaponDamage = enemyWeapon.weaponDamage; // get the current weapon damage value
     pointsCalculator    = FindObjectOfType <PointsCalculator>();
     spriteRenderer      = GetComponent <SpriteRenderer>();
     rb2D         = GetComponent <Rigidbody2D>();
     audioManager = FindObjectOfType <AudioManager>();
 }
コード例 #26
0
    void Start()
    {
        enemyArm = transform.Find("EnemyArm").gameObject;

        RandomizeStartingWeapon();

        if (enemyArm.transform.childCount > 0)
        {
            enemyWeapon = enemyArm.transform.GetChild(0).gameObject;
        }

        player = Player.instance;
        enemyMovementScript = gameObject.GetComponent <EnemyMovement>();
        enemyWeaponScript   = enemyArm.GetComponentInChildren <EnemyWeapon>();
        lootDropScript      = GetComponent <LootDrop>();
        levelExitScript     = GameObject.Find("LevelExitTrigger").GetComponent <LevelExit>();
        cursor       = MouseCursor.instance;
        gadgetScript = GameObject.Find("GadgetSlotPanel").GetComponent <Gadget>();

        scannerInfoTooltip = gadgetScript.scannerInfoTooltip;

        spriteRenderer = GetComponent <SpriteRenderer>();

        playerCapsuleCollider   = player.GetComponent <CapsuleCollider2D>();
        thisEnemyCollider       = GetComponent <CapsuleCollider2D>();
        hearingCollider         = transform.Find("Hearing").GetComponent <CircleCollider2D>();
        sightCollider           = transform.Find("Sight").GetComponent <CircleCollider2D>();
        lootBoxCollider         = GetComponent <BoxCollider2D>();
        lootBoxCollider.enabled = false;

        Physics2D.IgnoreCollision(thisEnemyCollider, playerCapsuleCollider);

        enemyStats.actualMaxHealth = enemyStats.maxHealth * enemyStats.startHealthPercent;
        enemyStats.Init();
        actualMoney = Mathf.RoundToInt(Random.Range(minMoneyDrop, maxMoneyDrop));

        anim = GetComponent <Animator>();

        anim.SetFloat("health", enemyStats.currentHealth);

        /*if (statusIndicator != null)
         * {
         *  statusIndicator.SetHealth(enemyStats.currentHealth, enemyStats.maxHealth); // Set health to max health at start
         * }*/

        GameMaster.gm.onToggleUpgradeMenu += OnUpgradeMenuToggle;
        GameMaster.gm.onTogglePauseMenu   += OnPauseMenuToggle;

        audioManager = AudioManager.instance;
        if (audioManager == null)
        {
            Debug.LogError("No audio manager in scene.");
        }
    }
コード例 #27
0
ファイル: Nazi.cs プロジェクト: Gryzbastian/Tunelstein
 void Start()
 {
     ani          = gameObject.GetComponent <Animator>();
     ani.enabled  = false;
     _enemyWeapon = EnemyWeapon.CreatePistol();
     SetHP();
     SetPoints();
     _naziAI         = gameObject.GetComponent <EnemyAI>();
     _playerDetected = false;
     _source         = gameObject.GetComponentInChildren <AudioSource>();
 }
コード例 #28
0
 void Start()
 {
     ani          = gameObject.GetComponent <Animator>();
     ani.enabled  = false;
     _enemyWeapon = EnemyWeapon.CreateMachinegun();
     SetHP();
     SetPoints();
     _ssAI           = gameObject.GetComponent <SuperSoldierAI>();
     _playerDetected = false;
     _source         = gameObject.GetComponentInChildren <AudioSource>();
 }
コード例 #29
0
 void Start()
 {
     weapon             = GetComponent <EnemyWeapon>();
     firingState.weapon = weapon;
     //load the agent for load it in the states
     agent  = GetComponent <NavMeshAgent>();
     moving = canMove; // set the state of moving, if the enemy canMove or is a static
     if (target == null)
     {
         target = GameObject.FindGameObjectWithTag("Player");
     }
 }
コード例 #30
0
        private void EquipWeapon()
        {
            // this will kill the firing coroutine started from the weapon
            // when its a projectile based weapon
            StopAllCoroutines();

            currentWeapon = selectedEnemyWeapon;

            SetupWeapon(weaponPos ?? transform);

            _fireWaitForSeconds = new WaitForSeconds(currentWeapon.ProjectileFiringPeriod);
        }
コード例 #31
0
 void OnDestroy()
 {
     Target = null;
     weapon = null;
 }
コード例 #32
0
 void Start()
 {
     state = EnemyState.Idle;
     weapon = (EnemyWeapon)GetComponent<EnemyWeapon>();
 }