// Use this for initialization void Start() { rb = GetComponent <Rigidbody>(); property = GetComponent <FishProperties>(); property.startPos = transform.position; property.currentPos = transform.position; rb.AddForce(new Vector3(0, 0, -GetComponent <FishProperties>().moveSpeed)); }
void Shoot() { Transform currentFirePoint = GetComponent <MovingInCircle>().currentFirePoint.transform; GameObject fish = Instantiate(fishPrefab, currentFirePoint.position, Quaternion.identity); FishProperties fishProperties = (FishProperties)fish.GetComponent(typeof(FishProperties)); FishCollider fishCollider = (FishCollider)fish.GetComponent(typeof(FishCollider)); fishCollider.audioSrc = hitSoundSource; SpriteRenderer renderer = (SpriteRenderer)fish.GetComponent(typeof(SpriteRenderer)); // TODO: Don't use firePoint.rotation, calculate the angle from the mouse like in PlayerMovement.cs float angle = Quaternion.Angle(currentFirePoint.rotation, Quaternion.identity); SpriteDirectionResolver.Direction direction = SpriteDirectionResolver.ResolveDirection(currentFirePoint.rotation); switch (direction) { case SpriteDirectionResolver.Direction.W: renderer.sprite = fishProperties.W; break; case SpriteDirectionResolver.Direction.NW: renderer.sprite = fishProperties.NW; break; case SpriteDirectionResolver.Direction.N: renderer.sprite = fishProperties.N; break; case SpriteDirectionResolver.Direction.NE: renderer.sprite = fishProperties.NE; break; case SpriteDirectionResolver.Direction.E: renderer.sprite = fishProperties.E; break; case SpriteDirectionResolver.Direction.SE: renderer.sprite = fishProperties.SE; break; case SpriteDirectionResolver.Direction.S: renderer.sprite = fishProperties.S; break; case SpriteDirectionResolver.Direction.SW: renderer.sprite = fishProperties.SW; break; } Rigidbody2D rigidBody = fish.GetComponent <Rigidbody2D>(); rigidBody.AddForce(currentFirePoint.right * fishForce, ForceMode2D.Impulse); Destroy(fish, 5.0f); shootSound.Play(); }