Hello everybody,
I’m developping a game that require a Background that scroll in a infinite loop and so I did this:
public GameObject prefab;
public float width;
public bool alreadyDid;
public float speed;
public string name;
private Camera camera;
public float cameraWidth;
public float cameraPosition;
public float xLastFrameSprite;
public float xFirstFrameCamera;
// Use this for initialization
void Start ()
{
SpriteRenderer sprite = gameObject.GetComponent<SpriteRenderer> ();
width = sprite.bounds.size.x;
alreadyDid = false;
camera = Camera.main;
cameraPosition = camera.transform.position.x;
}
// Update is called once per frame
void FixedUpdate ()
{
cameraWidth = renderer.bounds.size.x;
transform.Translate (new Vector2 (-speed, 0) * Time.fixedDeltaTime);
if (transform.position.x < 0) {
if (!alreadyDid) {
Vector2 v = new Vector2 (transform.position.x + width - 0.1f, transform.position.y );
Object obj = Instantiate (prefab, v, Quaternion.identity);
obj.name = name;
alreadyDid = true;
}
}
xLastFrameSprite = gameObject.transform.position.x + (width / 2);
xFirstFrameCamera = cameraPosition - (cameraWidth / 2);
if (xLastFrameSprite < xFirstFrameCamera) {
Destroy (gameObject);
}
}
And it works very well but I wonder is this the best way or I can approach it in a different mode ?