Quantcast
Channel: Questions in topic: "enemy"
Viewing all articles
Browse latest Browse all 1488

copy enemy prefabs

$
0
0
I created an Enemy with various components and 1 children i make it a prefab, and a want to use it several times around the scene, but when there are more than 1, only 1 work correctly. this script its attached to the prefab. public class fireBullet : MonoBehaviour { GameObject Fireposition; GameObject enemyBody; public Transform rager; Transform enemy; public PoderControl poderControl; float distance; float weaponEnemy; float AddForceX,AddForceY; public int enemyLife; void Start () { Fireposition = GameObject.FindGameObjectWithTag("fire"); enemy = GetComponent (); enemyBody = GameObject.FindGameObjectWithTag("enemy"); AddForceX = 0f; AddForceY = 0f; enemyLife = 300; } void FixedUpdate() { MoveEnemy (); ChequearPosicionRager (); StartCoroutine (ShootBullet (AddForceX, AddForceY)); DestroyEnemy (); } IEnumerator ShootBullet(float AddForceX,float AddForceY) { distance = Vector2.Distance (rager.transform.position, Fireposition.transform.position); if (distance < 12f) { if (Time.time > weaponEnemy + 0.5f) { weaponEnemy = Time.time; GameObject bulletinstance; bulletinstance = Instantiate (Resources.Load("Bullet"), Fireposition.transform.position, Fireposition.transform.rotation) as GameObject; bulletinstance.rigidbody2D.AddForce (new Vector2 (AddForceX, AddForceY)); Destroy (bulletinstance, 1f); } } yield return new WaitForSeconds (3f); } void MoveEnemy() { Vector3 dir = rager.transform.position - enemy.position; float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg; enemy.rotation = Quaternion.AngleAxis(angle, Vector3.forward); } void ChequearPosicionRager() { if (rager.position.x < enemy.position.x && rager.position.y < enemy.position.y) { AddForceX = -100f; AddForceY = -50f; } if (rager.position.x < enemy.position.x && rager.position.y > enemy.position.y) { AddForceX = -100f; AddForceY = 50f; } if (rager.position.x > enemy.position.x && rager.position.y > enemy.position.y) { AddForceX = 100f; AddForceY = 50f; } if (rager.position.x > enemy.position.x && rager.position.y < enemy.position.y) { AddForceX = 100f; AddForceY = -50f; } } void OnTriggerExit2D(Collider2D poder) { if (poder.gameObject.tag == "poder") enemyLife -= 25; } void DestroyEnemy() { if (enemyLife<=0) enemyBody.SetActive (false); } }

Viewing all articles
Browse latest Browse all 1488

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>