- Home /
 
Need help with launching mechanic
So, I'm relatively new to Unity and I am making a vertical launching game. I know how to make most of the mechanics work but I'm stuck on making the launch mechanic work the way I want to. What I want to is have a slider bar set the amount of power to use when launching the player projectile and actually spawn in a player prefab and launch it using specified power value. It did work for spawning in a player, but would spawn one in each time I pressed the button. So I tried placing some flag checks to limit it to one. It's at this point that I got stuck.
 using UnityEngine;
 using System.Collections;
 
 public class PowerBarScript : MonoBehaviour {
 
     
     public Rigidbody player;
     public Transform spawnPos;
     
 
 
     public float sliderValue = 1.0f;
     public float maxSilderValue = 10.0f;
     bool launching = false;
     
 
 
     void Shoot()
     {
         Debug.Log("Checking for a player");
        GameObject player = GameObject.Find("Player(Clone)");
             if (player != null)
             {
                 Debug.Log("Player does not exist");
                 if (launching == true)
                 {
                     Debug.Log("Spawning player");
                     Rigidbody pFab = Instantiate(player, spawnPos.position, spawnPos.rotation) as Rigidbody;
                 }
             }
 
 
        
 
 
     }
 
     void OnGUI()
     {
         GUILayout.BeginArea(new Rect(400,350, 200, 60));
         GUILayout.BeginHorizontal();
         GUILayout.BeginVertical();
         GUILayout.Box("Launch Power: " + Mathf.Round(sliderValue));
         sliderValue = GUILayout.HorizontalSlider(sliderValue, 0.0f, maxSilderValue);
         GUILayout.EndVertical();
         if (GUILayout.Button("Launch!"))
         {
             Debug.Log("Launching should be set to true");
             launching = true;
             Debug.Log("Calling Shoot");
             Shoot();
         }
         GUILayout.EndHorizontal();
         GUILayout.EndArea();
     }
 
     
 
 
     // Use this for initialization
     void Start () {
         
     
         
     }
 
     
     
     // Update is called once per frame
     void Update () {
         
        
     }
 }
 
               This is the code that I'm using. I'm honestly not sure what I can do at this point, so any help would be much appreciated.
EDIT: I forgot to mention that I'm writing this code in C# (if that wasn't already obvious) and would prefer to stay in that language, as it is currently the only one I know that works in Unity.
Your answer