The question is answered, right answer was accepted
Could anyone explain how to create an object(enemy in 2d game) in the Unity 5 moving from left to right and disappearing after crossing the screen?
Hello. Could anyone explain how to create an object(enemy in 2d game) in the Unity 5 moving from left to right and disappearing after crossing the screen? Something like a bird flying over the map or a meteor rain but not from top to bottom, but from left to right. I created an asteroid falling from top to bottom and disappearing after crossing the map, but I can't do the same for the object from left to right. I'll be grateful if someone could explain this step by step with the script. I tried couple scripts, but there were errors or the object stopped at the center of the screen and didn't move. I'm a beginner, so I'm sorry if I wrote something wrong. I'm just looking for answers both on the internet and in books, but I can't find.
What have you done exactly? Post your script or give us mor details if possible.
Answer by StickyHoneybuns · Feb 02, 2018 at 03:54 PM
Read this, https://docs.unity3d.com/ScriptReference/Camera.ViewportToWorldPoint.html
You already know how to do most stuff since you said you did this from top to bottom. It's basically the same.
Instantiate the object just to the left of the camera viewport, the number will be dependent on the size of your object.
For instance
public gameObject objectToSpawn;
private Rigidbody rb;
Vector3 Pos = new Vector3(-1f, .5f, 10);
Pos = Camera.main.ViewportToWroldPoint(Pos);
instantiate(
objectToSpawn,
Pos,
Quaternion.identity)
rb = objectToSpawn.getComponent<Rigidbody>();
rb.addForce(Vector3.right, ForceMode.Impulse);
You will have to adjust values of Vector3 Pos to spawn off camera correctly. You also may need to change Vector3.right depending on where your camera is located. Also, this is just off the top of my head so some of the syntax may be wrong as I'm not on my computer right now but it should give you a good start. The code will need to be in whatever function you want that determines when this happens like OnTriggerEnter.
Then just use a destroy object script on your object to destroy it after a set time. Play with the time to find when it is barely off camera. @polan31
Follow this Question
Related Questions
I have problem. 1 Answer
Random freezes during the game 0 Answers
2D Character shakes when moving diagonally 0 Answers
How to make an enemy 2d chasing player? 2 Answers
how to make knockback and slowmotion when hit by enemy 0 Answers