Question by
Dianiki64 · Aug 19, 2018 at 07:12 AM ·
2d gamebeginnertransform.positionspace invaders
Moving in Y and X after collision
Hi, I have a really dumb question but I trying to make like a "Copy" of Space invaders. I'm having trouble with the enemies movement, I can make them move sideways and when they collide they move to the other side but I can't make them go down after the trigger. Any Ideas?
public class Enemy : MonoBehaviour { public Object EnemybulletPrefab; int RandomTime; public Transform SpawnBullet;
//movement
public static float XAxis = 3;
Rigidbody2D r2d;
// Use this for initialization
void Start () {
this.r2d = GetComponent<Rigidbody2D>();
RandomTime = Random.Range(2, 5);
StartCoroutine(WaitAndShoot());
}
// Update is called once per frame
void Update () {
if (Player.Health >= 1)
{
this.r2d.velocity = new Vector2(XAxis, 0);
}
else if (Player.Health <= 0)
{
this.r2d.velocity = new Vector2(0, 0);
}
}
IEnumerator WaitAndShoot()
{
if (Player.Health >= 1)
{
yield return new WaitForSeconds(RandomTime);
GameObject EnemyBulletClone = Instantiate(this.EnemybulletPrefab, this.SpawnBullet.position, Quaternion.identity) as GameObject;
RandomTime = Random.Range(2, 5);
Destroy(EnemyBulletClone, 4);
yield return new WaitForSeconds(7);
StartCoroutine(WaitAndShoot());
}
}
public void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Bullet")
{
Destroy(gameObject);
}
}
public void OnTriggerEnter2D(Collider2D collision)
{
}
}
//and here's the code of the Boxcollision public class Sceneary : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.tag == "Enemy")
{
Enemy.XAxis= Enemy.XAxis * (-1);
}
}
}
maybe I don't need to use the code for the boxcollisions but I have no Idea what can be the best course of action.
Comment