- 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.