void Start() { if (enemy == null) { enemy = GetComponentInParent <GAFEnemy>(); } }
void TakeEffect() { if (attack == null) { return; } var hits = Physics2D.CircleCastAll(target, damageRadui, Vector2.zero); if (hits != null && hits.Length > 0) { for (int i = 0; i < hits.Length; i++) { GAFEnemy gafEnemy = hits[i].collider.gameObject.GetComponentInParent <GAFEnemy>(); if (gafEnemy == null) { gafEnemy = hits[i].collider.gameObject.GetComponent <GAFEnemy>(); } if (gafEnemy != null) { gafEnemy.TakeDamage(attack.GetAttack()); } } } }
void Start() { if(enemy == null) { enemy = GetComponentInParent<GAFEnemy>(); } }
public void OnEnable() { //if (anim == null) //{ // anim = GetComponent<Animator>(); //} if (enemy == null) { enemy = GetComponent <GAFEnemy>(); } if (enemy != null) { enemy.ReadyFroShoot = false; anim = enemy.anim; // RunEmerge(); } }
public void OnEnable() { //if (anim == null) //{ // anim = GetComponent<Animator>(); //} if (enemy == null) { enemy = GetComponent<GAFEnemy>(); } if (enemy != null) { enemy.ReadyFroShoot = false; anim = enemy.anim; // RunEmerge(); } }
public virtual void Start() { if (animator == null) { if (animatorInChildren) { animator = GetComponentInChildren <Animator>(); } else { animator = GetComponent <Animator>(); } } if (enemy == null) { enemy = GetComponent <GAFEnemy>(); //GAFEnemyEvent } }
public virtual void Start() { if(animator == null) { if(animatorInChildren) { animator = GetComponentInChildren<Animator>(); } else { animator = GetComponent<Animator>(); } } if(enemy == null) { enemy = GetComponent<GAFEnemy>(); //GAFEnemyEvent } }
bool SpwanObjectAt(GameObject obj, Transform parent) { if (parent == null) { return(false); } GameObject swpanObj = null; var posProperty = parent.GetComponent <PositionProperty>(); if (posProperty == null) { return(false); } if (posProperty.positionType == EnemySpwanPosition.FixedPosition) { swpanObj = (GameObject)Instantiate(obj, parent.position, parent.rotation); swpanObj.transform.parent = parent.transform; } else if (posProperty.positionType == EnemySpwanPosition.RandomPosition) { Vector3 postion = new Vector3(posProperty.GetRandomX(), parent.position.y, parent.position.z); swpanObj = (GameObject)Instantiate(obj); swpanObj.transform.SetParent(parent); swpanObj.transform.position = postion; } if (swpanObj != null) { //避免重叠 float timeFlag = Time.time / 100000; timeFlag = timeFlag - Mathf.FloorToInt(timeFlag); swpanObj.transform.position += new Vector3(0, 0, -timeFlag); //swpanObj.transform. = parent.transform; swpanObj.transform.localScale = parent.transform.lossyScale; //disable mask if (!posProperty.enableMask) { var mask = swpanObj.transform.FindChild("mask"); mask.gameObject.SetActive(false); } EnemyEmerge ee = parent.GetComponent <EnemyEmerge>(); if (ee != null) { EnemyEmerge enew = swpanObj.AddComponent <EnemyEmerge>(); enew.CopyFrom(ee); enew.RunEmerge(); } //敌人的属性 GAFEnemy e = swpanObj.GetComponent <GAFEnemy>(); if (e == null) { Debug.Log("Dont have Enemy component!"); e = swpanObj.AddComponent <GAFEnemy>(); } e.EnhanceByTurn(1 + currentTurn * enhancePerTurn + currentWave * enhancePerWave); SortLayer sl = parent.GetComponent <SortLayer>(); if (sl != null && sl.layerName != "") { SpriteRenderer[] render = swpanObj.GetComponentsInChildren <SpriteRenderer>(); if (render != null && render.Length > 0) { for (int i = 0; i < render.Length; i++) { render[i].sortingLayerName = sl.layerName; } } var sortlayer = swpanObj.AddComponent <GAFSortLayer>(); sortlayer.sortLayerName = sl.layerName; } //是否能够横向漫游 EnemyWanderX[] wanders = swpanObj.GetComponents <EnemyWanderX>(); if (wanders != null && wanders.Length > 0) { for (int i = 0; i < wanders.Length; i++) { if (wanders[i].GetType() == typeof(EnemyWanderRunX)) { wanders[i].enabled = posProperty.allowRunX; } else { wanders[i].enabled = posProperty.allowWanderX; } wanders[i].minMovementX = posProperty.minMovementX; wanders[i].maxMovementX = posProperty.maxMovementX; } } //通知GameManager ,产生了敌人 AddAliveEmeny(); needCreateEnemy--; return(true); } return(false); }
public void Shoot(Vector3 postion) { //Debug.Log (postion); deltaTime = 0; canShoot = false; anim.SetTrigger("isShooting"); PlayMuzzleEffect(); PlaySignEffect(); PlayShootAudio(); ShowBullet(postion); ShowShell(); //更新子弹数量显示 curMagSize -= 1; UpdateBulletDisplay(); if (shakeWhenShoot) { ShakeBackground(); } RaycastHit2D rayhit = Physics2D.Raycast(postion, Vector2.zero); bool isHitEnemy = false; if (rayhit.collider != null) { GAFEnemy gafEnemy = rayhit.collider.gameObject.GetComponentInParent <GAFEnemy>(); if (gafEnemy == null) { gafEnemy = rayhit.collider.gameObject.GetComponent <GAFEnemy>(); } if (gafEnemy != null) { // Debug.Log(gafEnemy.name); //Debug.Log(rayhit.collider.GetType()); if (rayhit.collider.GetType() == typeof(CircleCollider2D)) { gafEnemy.TakeDamage(attack, true); } else { gafEnemy.TakeDamage(attack); } isHitEnemy = true; } Shootable shootable = rayhit.collider.GetComponent <Shootable>(); if (shootable != null) { shootable.TakeDemage(attack); isHitEnemy = true; } //判断是否击中了箱子 GameItem item = rayhit.collider.GetComponent <GameItem>(); if (item) { item.TakeDamage(attack); isHitEnemy = true; } } if (!isHitEnemy) { PlaySignImpactEffect(postion); } }