// Update is called once per frame void Update() { // Spray bullets for (int i = 0; i < 10; i++) { GameObject go = bulletPool.retrieve(); int animId = animIds[go]; if (animId >= 0) { if (debug) { Debug.Log("canceling id:" + animId); } LeanTween.cancel(animId); } go.transform.position = transform.position; float incr = (float)(5 - i) * 0.1f; Vector3 to = new Vector3(Mathf.Sin(incr) * 180f, 0f, Mathf.Cos(incr) * 180f); animIds[go] = LeanTween.move(go, go.transform.position + to, 5f).setOnComplete(() => { bulletPool.giveup(go); }).id; } // Move Ship if (transform.position.x < -20f) { shipDirectionX = 1f; } else if (transform.position.x > 20f) { shipDirectionX = -1f; } var pos = transform.position; pos.x += shipDirectionX * Time.deltaTime * shipSpeed; transform.position = pos; }