public void Launch(GameObject launchSite, int count) { // DebugScript = DebugCollider.GetComponent<DebugGameScript>(); // DebugScript.Collider = Collider; MissileCount++; missileCommnandScript.MissileLaunched(); TargetPoint = MousePosition.ToWorldSpace().ChangeZ(Z); MarkTarget(TargetPoint); var shape2d = gameObject.GetComponent <Shapes2D.Shape>(); //shape2d.enabled = false; var spriteRenderer = gameObject.GetComponent <SpriteRenderer>(); spriteRenderer.enabled = false; Vector3[] poses1 = new Vector3[2]; lineRenderer.GetPositions(poses1); var pos = launchSite.transform.position; pos.z = Z; LaunchPoint = new SpacePoint(Graphics.Space.World, pos); poses1[0] = poses1[1] = LaunchPoint.Position; lineRenderer.SetPositions(poses1); Delta = Delta(LaunchPoint, TargetPoint); lineRenderer.enabled = true; tweener = Tweener2d.LinearTweener(LaunchPoint.Position, TargetPoint.Position, Velocity).GetEnumerator(); State = PlayerMissileState.Traveling; }
// Update is called once per frame void Update() { Vector3[] poses1 = new Vector3[2]; lineRenderer.GetPositions(poses1); switch (State) { case PlayerMissileState.None: default: break; case PlayerMissileState.Traveling: if (tweener.MoveNext()) { poses1[1] = tweener.Current; lineRenderer.SetPositions(poses1); } else { lineRenderer.enabled = false; TargetCross1.GetComponent <LineRenderer>().enabled = false; TargetCross2.GetComponent <LineRenderer>().enabled = false; Explosion = Instantiate(Explosion, TargetCross1.transform.position, TargetCross1.transform.rotation); var animation = Explosion.GetComponent <ExplosionAnimation>(); animation.PlayerMissile = this; State = PlayerMissileState.None; MissileCount--; } break; } }