void Shoot() { //Disables the Line renderer so light is all you see line.enabled = false; //Sets the line renderer in the light origin line.SetPosition(0, transform.position); shootRay.origin = transform.position; shootRay.direction = transform.forward; //If (Origin of the ray, what it has hit, how far it can go) //If this has hit something if (Physics.Raycast(shootRay, out shootHit, range, shootableMask)) { //Get the enemy health script of that object the ray has hit EnemyHealth enemyHealth = shootHit.collider.GetComponent <EnemyHealth>(); EnemyMove enemyMove = shootHit.collider.GetComponent <EnemyMove>(); //If the object you hit has a health script subtract it by damage per shot if (enemyHealth != null) { enemyHealth.TakeDamage(damagePerShot, shootHit.point); } //sets the end of the Line renderer at the thing it has hit enemyMove.speed = 30f; line.SetPosition(1, shootHit.point); } //else make the line go far out 100 units (range) else { line.SetPosition(1, shootRay.origin + shootRay.direction * range); } }
public float tumble = 10.0f; //旋转速度 // Use this for initialization void Start() { instance = this; rb = GetComponent <Rigidbody2D>(); rb.angularVelocity = tumble;//定义角速度旋转 setNew(); }
public void GenerateEnemyMove() { float movePct = Random.Range(0.0f, 1.0f); if (movePct <= 0.100f) { currentEnemyMove = enemyMoveList[2]; } else if (movePct >= 0.101f && movePct <= 0.250) { currentEnemyMove = enemyMoveList[1]; } else if (movePct >= 0.251f && movePct <= 0.500) { currentEnemyMove = enemyMoveList[3]; } else { currentEnemyMove = enemyMoveList[0]; } enemyCooldown = currentEnemyMove.cooldown; }
//Set custom stats for coconut enemy public override void SetStats() { MAX_HEALTH = 10; MAX_ENERGY = 100; baseStats[0] = 15; baseStats[1] = 6; baseStats[2] = 7; //Create different enemy moves moves = new List <EnemyMove>(); EnemyMove move = new EnemyMove(this, IType.MoveType.InstantAttack, 30, currentType); move.damageScale = 1.3f; moves.Add(move); move = new EnemyMove(this, IType.MoveType.InstantAttack, 50, currentType); move.damageScale = 2f; moves.Add(move); move = new EnemyMove(this, IType.MoveType.DelayedAttack, 40, currentType); move.damageScale = 1.5f; moves.Add(move); move = new EnemyMove(this, IType.MoveType.InstantPassive, 40, currentType); moves.Add(move); move = new EnemyMove(this, IType.MoveType.DelayedPassive, 25, currentType); moves.Add(move); }
void OnAttack(Transform enemy) { // Point gameManager.stagePoint += 100; // Reaction Force rigid.AddForce(Vector2.up * 10, ForceMode2D.Impulse); // Enemy Die EnemyMove enemyMove = enemy.GetComponent <EnemyMove>(); if (enemyMove != null) { enemyMove.OnDamaged(); } FlyEnemy flyEnemy = enemy.GetComponent <FlyEnemy>(); if (flyEnemy != null) { flyEnemy.OnDamaged(); } PopEnemy popEnemy = enemy.GetComponent <PopEnemy>(); if (popEnemy != null) { popEnemy.OnDamaged(); } // Sound PlaySound("ATTACK"); audioSource.Play(); }
// Start is called before the first frame update void Start() { enemy = GameObject.FindGameObjectWithTag("Enemy"); enemyMove = enemy.GetComponent <EnemyMove>(); warningDigree = 12.5f; warnigUI = warnngSliderCtr.GetComponent <WarnigUI>(); }
// Start is called before the first frame update void Start() { eNum = 1; eB = enemy.GetComponent <EnemyBullet>(); eM = enemy.GetComponent <EnemyMove>(); StartCoroutine(PopEnemy()); }
//初期化 public void Initialize(ENEMY_TYPE enemy_type, float move_speed, int hit_point) { _enemy_type = enemy_type; _move_speed = move_speed; _hit_point = hit_point; switch (_enemy_type) { case ENEMY_TYPE.TYPE_A: _enemy_move = new StraightMove( ); break; case ENEMY_TYPE.TYPE_B: _enemy_move = new ArcMove( ); break; case ENEMY_TYPE.TYPE_C: _enemy_move = new WaveMove( ); break; default: Assert.IsNotNull(_enemy_move, "[Enemy]敵の種類が入ってません"); break; } }
/// <summary> /// Determines which move has a higher priority /// </summary> /// <param name="m">The move to check this one against</param> public int CompareTo(EnemyMove m) { if (priority > m.priority) { return(-1); } else if (priority < m.priority) { return(1); } else { if (reasonPriority > m.reasonPriority) { return(-1); } else if (reasonPriority < m.reasonPriority) { return(1); } else { return(0); } } }
void OnWizardCreate() { GameObject enemyGO = new GameObject(); if (isMove) { EnemyMove enemyMove = enemyGO.AddComponent <EnemyMove>(); enemyMove.speed = enemySpeed; } enemyGO.name = enemyName; SpriteRenderer spriteRender = enemyGO.AddComponent <SpriteRenderer>(); spriteRender.sprite = enemySprite; Animator anime = enemyGO.AddComponent <Animator>(); BoxCollider box = enemyGO.AddComponent <BoxCollider>(); Vector3 boxSize = spriteRender.bounds.size; box.size = boxSize; float x = Random.Range(210, 230); float z = Random.Range(110, 135); Debug.Log("Sprite render size: " + spriteRender.bounds.size); enemyGO.transform.position = new Vector3(x, 2.47f, z); }
void Awake() { anim = this.GetComponent <Animator>(); agent = this.GetComponent <NavMeshAgent>(); enemyMove = this.GetComponent <EnemyMove>(); enemyAttack = this.GetComponent <EnemyAttack>(); }
public override void SetStats() { //Custom stats MAX_HEALTH = 12; MAX_ENERGY = 100; baseStats[0] = 13; baseStats[1] = 8; baseStats[2] = 4; //Custom moves moves = new List <EnemyMove>(); EnemyMove move = new EnemyMove(this, IType.MoveType.InstantAttack, 30, currentType); move.damageScale = 1.2f; moves.Add(move); move = new EnemyMove(this, IType.MoveType.InstantAttack, 50, currentType); move.damageScale = 1.7f; moves.Add(move); move = new EnemyMove(this, IType.MoveType.DelayedAttack, 40, currentType); move.damageScale = 1.5f; moves.Add(move); move = new EnemyMove(this, IType.MoveType.InstantPassive, 40, currentType); moves.Add(move); move = new EnemyMove(this, IType.MoveType.DelayedPassive, 25, currentType); moves.Add(move); }
void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.tag == "Player") { StartCoroutine(CheckAnimationState()); if (State_PlayerDie == true) { PlayerObj = GameObject.Find("Player_SwordMan").GetComponent <Transform>(); Enemy_Move = GetComponentInParent <EnemyMove>(); if (Enemy_Move.Enemy_Dir == 0) { PlayerObj.transform.localScale = new Vector3(1, 1, 1); } else if (Enemy_Move.Enemy_Dir == 1) { PlayerObj.transform.localScale = new Vector3(-1, 1, 1); } int Random_Sound = Random.Range(0, 5); Sound_Source.clip = Sound_SwordHit[Random_Sound]; Sound_Source.PlayOneShot(Sound_Source.clip); Sound_Source.clip = Sound_SwordSwing[Random_Sound]; Sound_Source.PlayOneShot(Sound_Source.clip); Player_Ani = collision.GetComponent <Animator>(); Player_Ani.Play("Die"); } } }
private void Start() { bulletEffectManager = GameObject.Find("MANAGER").transform.Find("BulletEffectManager").GetComponent <BulletEffectManager>(); enemyStatus = GetComponent <EnemyStatus>(); enemyMove = GetComponent <EnemyMove>(); player = GameObject.Find("CHARACTER").transform.Find("Player").gameObject; bulletPool = new Transform[3]; for (int i = 0; i < 3; i++) { bulletPool[i] = GameObject.Find("BULLET").transform.Find("EnemyBullet").GetChild(i); } bulletParent = new Transform[10]; for (int i = 0; i < 10; i++) { bulletParent[i] = GameObject.Find("BULLET").transform.Find("EnemyBullet_Temp").transform.Find(string.Format("EnemyBullet_Temp{0}", i + 1)); } effectPool = GameObject.Find("EFFECT").transform.Find("Effect"); effectParent = GameObject.Find("EFFECT").transform.Find("Effect_Temp"); switch (enemyStatus.GetEnemyType()) { case EnemyType.ENEMYTYPE_SMINION: case EnemyType.ENEMYTYPE_MMINION: case EnemyType.ENEMYTYPE_LMINION: StartCoroutine(EnemyMinionAttack(enemyPatternNumber, enemyAttackWaitTime, enemyAttackDelayTime, isPatternRepeat, enemyFireCount, enemyAttackRepeatTime, enemyCustomPatternNumber)); break; default: break; } }
void Awake() { move = GetComponent <EnemyMove> (); playerMask.value = LayerMask.GetMask("Player"); startPosition = transform.position; }
void Awake(){ anim = this.GetComponent<Animator> (); agent = this.GetComponent<NavMeshAgent> (); enemyMove = this.GetComponent<EnemyMove> (); particleSystem = this.GetComponentInChildren<ParticleSystem> (); // enemyAttack = this.GetComponent<EnemyAttack> (); }
// Update is called once per frame void Update() { RaycastHit2D ray = Physics2D.Raycast(transform.position, transform.right * -1, distance, isLayer); if (ray.collider != null) { if (ray.collider.tag == "Enemy") { EnemyMove enemyMove = ray.collider.transform.GetComponent <EnemyMove>(); enemyMove.OnDamaged(); } else if (ray.collider.tag == "Player") { Debug.Log("명중!"); PlayerMove player = ray.collider.transform.parent.GetComponent <PlayerMove>(); player.OnDamaged(); } DestroyBullet(); } if (transform.rotation.y == 0) { transform.Translate(transform.right * -1 * speed * Time.deltaTime); } else { transform.Translate(transform.right * speed * Time.deltaTime); } }
protected override void Start() { base.Start(); mTransformer = GetComponent <EnemyWeaponTransformer>(); mMover = GetComponent <EnemyMove>(); AllowTwoHanded = true; }
// Use this for initialization void Start() { if (GetComponentInParent <EnemyMove> () != null) { RightOrNot = GetComponentInParent<EnemyMove> (); OldFace = RightOrNot.faceright; } }
//ENEMY heals ENEMY public void e_resolve_heal(Enemy unit, EnemyMap eMap) { reset_targetLists(); EnemyMove move = unit.nextMove; //gather targets switch (move.get_highlightType()) { case 0: //standard rectangular. for (int c = unit.nextX; c < (unit.nextX + move.get_ysize()); c++) { for (int r = unit.nextY; r < (unit.nextY + move.get_xsize()); r++) { if (eMap.search_enemy(c, r) != null) { if (!e_targets.Contains(eMap.search_enemy(c, r))) { e_targets.Add(eMap.search_enemy(c, r)); } } else { eMap.tilegrid[r, c].GetComponent <EnemyTile>().show_heal_text("miss"); } } } break; case 1: //self e_targets.Add(unit); break; } //now, heal the targets foreach (Enemy target in e_targets) { //calc heal: bool ignoreMax = false; int heal = 0; if (move.get_hasCustomHeal()) { //Debug.Log("custom heal going"); StartCoroutine(show_battleNumbers(target.stats.get_floatingHp().gameObject, 2.25f)); heal = move.calc_custom_heal(unit); ignoreMax = move.get_ignoreHealMax(); } else { StartCoroutine(show_battleNumbers(target.stats.get_floatingHp().gameObject, 1)); heal = e_calc_heal(unit, target); } //display heal number if (heal != -1) { e_do_heal(target, heal, ignoreMax); eMap.tilegrid[target.get_x(), target.get_y()].GetComponent <EnemyTile>().show_heal_text(heal.ToString()); } } }
private void OnAttack(Transform enemy) { EnemyMove enemyMove = enemy.GetComponent <EnemyMove>(); enemyMove.OnDamaged(); gameManager.stagePoint += 100; }
public void EnemyMove_can_parse_sector(string input, int expected) { EnemyMove move = new EnemyMove(input); Assert.True(move.HasSector); Assert.Equal(expected, move.Sector.Value.Number); }
IEnumerator Die() { if (GetComponent <EnemyMove>()) { EnemyMove enemy = GetComponent <EnemyMove>(); for (int i = 0; i < enemy.GetComponentsInChildren <Rigidbody>().Length; i++) { enemy.GetComponentsInChildren <Rigidbody>()[i].isKinematic = false; } enemy.enemyAnimator.enabled = false; yield return(new WaitForEndOfFrame()); enemy.isDead = true; } if (GetComponent <PlayerMove>()) { PlayerMove player = GetComponent <PlayerMove>(); for (int i = 0; i < player.GetComponentsInChildren <Rigidbody>().Length; i++) { player.GetComponentsInChildren <Rigidbody>()[i].isKinematic = false; } yield return(new WaitForEndOfFrame()); player.playerAnimator.enabled = false; } }
public IEnumerator Stage1() { // 스테이지 1 BGM 재생 SoundManager.instance.PlayBGM(1); yield return(new WaitForSeconds(2.0f)); #region Enemy Appear int[] enemyItem = new int[11] { 3, 5, 2, 2, 0, 0, 0, 1, 0, 0, 0 }; float[] enemyHP = new float[6] { 200.0f, 160.0f, 240.0f, 200.0f, 240.0f, 220.0f }; Vector3 spawnPosition = new Vector3(0.0f, 5.0f, 0.0f); Vector3 targetPosition = new Vector3(0.0f, 3.0f, 0.0f); GameObject boss = CreateBoss(spawnPosition, "ENEMY", LayerMask.NameToLayer("ENEMY_BODY"), new Vector3(1.5f, 1.5f, 1.0f), 0.2f, 3, false, EnemyType.ENEMYTYPE_BOSS, enemyItem, 1, enemyHP); EnemyMove enemyMove = boss.GetComponent <EnemyMove>(); EnemyFire enemyFire = boss.GetComponent <EnemyFire>(); StartCoroutine(enemyMove.EnemyMoveOnce(targetPosition, iTween.EaseType.easeOutQuad, 1.0f)); yield return(new WaitForSeconds(1.5f)); enemyFire.EnemyBossAttack(GameData.currentStage, GameData.currentChapter); #endregion }
public void EnemyMove_can_parse_movement(string input, Direction expected) { EnemyMove move = new EnemyMove(input); Assert.True(move.IsMovement); Assert.Equal(expected, move.Movement); }
//初期設定 public void setUp() { //使用する各種コンポーネントを設定 enemyMove = GetComponent <EnemyMove> (); shottype = GetComponent <ShotType> (); spaceship = GetComponent <Spaceship> (); managerObj = FindObjectOfType <Manager> (); //プレイヤーを設定 || Player -> null, Player(Clone) -> OK playerObj = GameObject.Find(managerObj.selectedPlayer.name + "(Clone)"); //managerObj.selectedPlayer.name + "(Clone)" // 倒した時のポイントを設定 if (isLastBoss != false) { point = LAST_BOSS_POINT; } else if (isSpecialEnemy != false) { point = SPECIAL_ENEMY_POINT; } else { point = NORMAL_ENEMY_POINT; } }
// Use this for initialization public override void Init(Stats _stat) { _properties = _stat; //ステータスのセット SetStatus(Enemy.Type.MEEL, MaxHitPoint, Speed, SEARCH_RANGE, ATTACK_RANGE, MOVE_RANGE, MONEY); //忍耐値のセット _patienceValue = PATIENCE_VALUE; //移動コンポーネントの取得 _move = GetComponent <EnemyMove> (); //リジットボディの取得 RigidbodyProperties = GetComponent <Rigidbody> (); //索敵用オブジェクトの取得 _searchObj = transform.Find("SearchRange").gameObject; _searchObj.GetComponent <SearchPlayer> ().Initialize(); //自由移動ポジション設定 _freeMovePosition = _move.SetMovePos(); //武器プレハブの取得 SetWeapons(); _anim = GetComponent <SimpleAnimation>(); _anim.GetState("Open").speed = 5.0f; _anim.GetState("Close").speed = 5.0f; _anim.CrossFade("Idle", 0f); _animName = "Idle"; _isLady = true; }
EnemyMove CheckForAttackingRobots() { RaycastHit2D[] hits = Physics2D.RaycastAll(transform.position, playerTarget.position); EnemyMove newTarget = null; if (hits.Length > 0) { foreach (RaycastHit2D hit in hits) { if (hit.transform == transform) { continue; } EnemyMove em = hit.transform.GetComponent <EnemyMove>(); if (em == null) { continue; } if (!em.isControlledByPlayer) { continue; } newTarget = em; } } return(newTarget); }
private void Awake() { _stateMachine = new StateMachine(); var idle = new EnemyIdle(this); var attack = new EnemyAttack(this); var move = new EnemyMove(this, _rigidbody); var death = new EnemyDeath(this, _collider); At(idle, move, hasTarget()); At(move, idle, lostTarget()); At(move, attack, reachedTarget()); At(attack, idle, lostTarget()); At(attack, move, targetOutOfRange()); At(idle, death, isDead()); At(move, death, isDead()); At(attack, death, isDead()); Func <bool> hasTarget() => () => Target != null; Func <bool> lostTarget() => () => Target == null; Func <bool> reachedTarget() => () => Vector2.Distance(transform.position, Target.transform.position) < attackRange - 0.5f; Func <bool> targetOutOfRange() => () => Target != null && Vector2.Distance(transform.position, Target.transform.position) > attackRange - 0.5f; Func <bool> isDead() => () => health <= 0; void At(IState from, IState to, Func <bool> condition) => _stateMachine.AddTransition(from, to, condition); _stateMachine.SetState(idle); }
void GetAndSetCompoents() { _collider = GetComponent <QuadtreeCollider>(); _life = GetComponent <Life>(); _shot = GetComponent <EnemyShot>(); _move = GetComponent <EnemyMove>(); }
void Start() { m_CircleCollider2D = GetComponent <CircleCollider2D>(); m_EnemyHealth = m_HealthAmount; m_EnemyAttack = m_AttackDamage; m_EnemyMove = gameObject.GetComponent <EnemyMove>(); }
IEnumerator RandomEnemy() { // for (int n = 0; n < 4; n++) { // //Animatorフラグをセット // create_clip = true; //Enemyを生成(オリジナルのposition位置) GameObject enemy_copy = this.Instantiate(enemy_prefab, new Vector3(EmitterRan_Pos_x, EmitterRan_Pos_y, 0f), Quaternion.identity) as GameObject; //Enemyの生成(EmitterRandom位置) // Instantiate(enemy_prefab, transform.position, Quaternion.identity); // Instantiate(enemy_prefab, new Vector3(0f, 0f, 0f), Quaternion.identity); // //EnemyMoveコンポーネントを取得 // enemy_move = Enemy.GetComponent<EnemyMove>(); enemy_move = enemy_copy.GetComponent <EnemyMove>(); // // //Spaceshipコンポーネントを取得 // spaceship_clip = Enemy.GetComponent<Spaceship>(); spaceship_clip = enemy_copy.GetComponent <Spaceship>(); // // //Createアニメーションを呼び出す spaceship_clip.GetComponent <Animator>().SetBool("Create", create_clip); // // //Enemy_プレファブのtransform.positionから修正 // //enemy_copy.transform.Translate (3.5f, -6.4f, 0.1f); // // //移動スピード enemy_move.enemySpeed = enemy_speed; //コルーチンで時間指定 yield return(new WaitForSeconds(enemy_interval)); } }
void Start() { _enemy = FindObjectOfType<EnemyMove>(); _sensor = FindObjectOfType<EnemySensor>(); }
// Use this for initialization void Start() { enemyMove = GetComponent<EnemyMove>(); //moveSpeed = 0.05F; }
void Awake() { // Setting up the references. _Movement = GetComponent<EnemyMove>(); }
void Awake() { movement = GetComponent<EnemyMove>(); }