You are on page 1of 2

using System.

Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class CannonController : MonoBehaviour {


public GameObject fireExplosion;
public GameObject cannonBallPrefab;
private Transform ShootingPoint;
private GameObject CannonBallInstance;
public Button fireButton;
public Slider slider;
public float cannonPower;
private bool hasFired;
public List<GameObject> lifes;

// Use this for initialization


void Start () {
ShootingPoint = gameObject.transform.FindChild("ShootingPoint");
fireButton.onClick.AddListener(Fire);
hasFired = false;
}

// Update is called once per frame


private void Fire() {

if (!hasFired)
{
CannonBallInstance = Instantiate(cannonBallPrefab, ShootingPoint.position,
ShootingPoint.rotation);
CannonBallInstance.GetComponent<Rigidbody2D>().AddForce(-new
Vector2(ShootingPoint.position.x, ShootingPoint.position.y) * slider.value * cannonPower,
ForceMode2D.Impulse);
hasFired = true;
lifes[lifes.Count - 1].SetActive(false);
lifes.RemoveAt(lifes.Count - 1);
}
}

private void Update()


{
if (hasFired)
{

if (CannonBallInstance.GetComponent<Rigidbody2D>().velocity == new Vector2(0,0))


{
Destroy(CannonBallInstance);
hasFired = false;
}
}
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag == "CannonBall")
{
Instantiate(fireExplosion, transform.position, transform.rotation);
GetComponent<SpriteRenderer>().enabled = false;
GetComponent<BoxCollider2D>().enabled = false;
}
}
}

You might also like