How do I get a bullet to shoot to a mobile joystick position in Unity?

Started by
-1 comments, last by Cuber01 7 years, 2 months ago

I am working on a 2D platformer and I am adding mobile controls. I am trying to get the player to shoot when you touch and move the joystick.

I tried to change all of the Input to CrossPlatformInputManger but when I use the joystick nothing happens.

Please any sugggestions will be helpful! Thanks!!!!

Here is what is in the update method

void Update () {

if (fireRate == 0)

{

if (CrossPlatformInputManager.GetButtonDown("Fire1"))

{

Shoot();

}

}

else

{

if (CrossPlatformInputManager.GetButton ("Fire1") && Time.time > timeToFire)

{

timeToFire = Time.time + 1 / fireRate;

Shoot();

}

}

}

and the Shoot Method

void Shoot ()

{

Vector2 joyStickPosition = new Vector2(Camera.main.ScreenToWorldPoint(CrossPlatformInputManager.mousePosition).x, Camera.main.ScreenToWorldPoint(CrossPlatformInputManager.mousePosition).y);

Vector2 firePointPosition = new Vector2 (firePoint.position.x, firePoint.position.y);

RaycastHit2D hit = Physics2D.Raycast (firePointPosition, joyStickPosition-firePointPosition, 100, whatToHit);

Debug.DrawLine(firePointPosition, (joyStickPosition - firePointPosition)*100, Color.cyan);

if (hit.collider != null)

{

Debug.DrawLine(firePointPosition, hit.point, Color.red);

Enemy enemy = hit.collider.GetComponent<Enemy>();

if (enemy != null)

{

enemy.DamageEnemy(Damage);

//Debug.Log("We hit " + hit.collider.name + "and did " + Damage + "damage");

}

}

I am working on a 2D platformer and I am adding mobile controls. I am trying to get the player to shoot when you touch and move the joystick.

I tried to change all of the Input to CrossPlatformInputManger but when I use the joystick nothing happens.

Please any sugggestions will be helpful! Thanks!!!!

Here is what is in the update method


void Update () {
    if (fireRate == 0)
    {
        if (CrossPlatformInputManager.GetButtonDown("Fire1"))     
        {
            Shoot();          
        }
    }
    else
    {
        if (CrossPlatformInputManager.GetButton ("Fire1") && Time.time > timeToFire) 
        {
            timeToFire = Time.time + 1 / fireRate;
            Shoot();
        }
    }
}

And the Shoot method


void Shoot ()
{
    Vector2 joyStickPosition = new Vector2(Camera.main.ScreenToWorldPoint(CrossPlatformInputManager.mousePosition).x, Camera.main.ScreenToWorldPoint(CrossPlatformInputManager.mousePosition).y);
    Vector2 firePointPosition = new Vector2 (firePoint.position.x, firePoint.position.y);
    RaycastHit2D hit = Physics2D.Raycast (firePointPosition, joyStickPosition-firePointPosition, 100, whatToHit);

    Debug.DrawLine(firePointPosition, (joyStickPosition - firePointPosition)*100, Color.cyan); 
    if (hit.collider != null)
    {
        Debug.DrawLine(firePointPosition, hit.point, Color.red);
        Enemy enemy = hit.collider.GetComponent<Enemy>();
        if (enemy != null)
        {
            enemy.DamageEnemy(Damage);
            //Debug.Log("We hit " + hit.collider.name + "and did " + Damage + "damage");
        }
   

This topic is closed to new replies.

Advertisement