Quantcast
Channel: Questions in topic: "error"
Viewing all articles
Browse latest Browse all 7934

GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)

$
0
0
I am getting the error GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced) and the error ArgumentException: The prefab you want to instantiate is null. UnityEngine.Object.CheckNullArgument (System.Object arg, System.String message) (at C:/BuildAgent/work/d63dfc6385190b60/artifacts/EditorGenerated/UnityEngineObject.cs:104) UnityEngine.Object.Instantiate (UnityEngine.Object original, Vector3 position, Quaternion rotation) (at C:/BuildAgent/work/d63dfc6385190b60/artifacts/EditorGenerated/UnityEngineObject.cs:83) PC.get_Instance () (at Assets/Scripts/Character/PC.cs:20) CharacterGenerator.DisplayName () (at Assets/Scripts/Character/CharacterGenerator.cs:94) CharacterGenerator.MyWindow (Int32 id) (at Assets/Scripts/Character/CharacterGenerator.cs:79) UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style) (at C:/BuildAgent/work/d63dfc6385190b60/artifacts/EditorGenerated/GUI.cs:1402) This is the script I have attached to my main camera. /// /// CharacterGenerator.cs /// Aug 19, 2014 /// Uncle Jimz /// /// This script is used to help the user generate a character. /// using UnityEngine; using System.Collections; using System; //used for the Enum class public class CharacterGenerator : MonoBehaviour { // private PlayerCharacter _toon; private const int STARTING_POINTS = 350; private const int MIN_STARTING_ATTRIBUTE_VALUE = 10; private const int STARTING_VALUE = 50; private int pointsLeft; private const int OFFSET = 5; private const int LINE_HEIGHT = 32; private const int STAT_LABEL_WIDTH = 200; private const int BASEVALUE_LABEL_WIDTH = 90; private const int BUTTON_WIDTH = 60; private const int BUTTON_HEIGHT = 32; private Rect windowRect; private int statStartingPos = 30; public GUISkin mySkin; public float delayTimer = .25f; private float _lastClick = 0; void Awake() { // Debug.Log("***CharacterGenerator - Awake***"); // PC.Instance.Initialize(); } // Use this for initialization void Start () { // Debug.Log("***CharacterGenerator - Start***"); pointsLeft = STARTING_POINTS; for(int cnt = 0; cnt < Enum.GetValues(typeof(AttributeName)).Length; cnt++) { PC.Instance.GetPrimaryAttribute(cnt).BaseValue = STARTING_VALUE; pointsLeft -= (STARTING_VALUE - MIN_STARTING_ATTRIBUTE_VALUE); } PC.Instance.StatUpdate(); } //update the GUI void OnGUI() { GUI.skin = mySkin; windowRect = GUI.Window( 0, windowRect, MyWindow, "Character Creation" ); // if(_toon.Name == "" || pointsLeft > 0) // DisplayCreateLabel(); // else // DisplayCreateButton(); } public void Update() { windowRect = new Rect( -5, -23, Screen.width + 10, Screen.height + 46 ); } private void MyWindow( int id ) { DisplayName(); DisplayPointsLeft(); DisplayAttributes(); DisplayVitals(); DisplaySkills(); if(PC.Instance.name != "" && pointsLeft < 1) DisplayCreateButton(); } //display the name lable as well as the textbox for them to enter the name private void DisplayName() { GUI.BeginGroup( new Rect( 40, 90, 400, LINE_HEIGHT ) ); GUI.Label(new Rect( 0, 0, 120, LINE_HEIGHT), "Name:"); PC.Instance.name = GUI.TextField(new Rect(120, 0, 200, LINE_HEIGHT), PC.Instance.name); GUI.EndGroup(); } //display all of the attributes as well as the +/- boxes for the user to alter the values private void DisplayAttributes() { GUI.BeginGroup(new Rect( 40, 90 + LINE_HEIGHT, ( Screen.width - 80 ) / 2, LINE_HEIGHT * ( Enum.GetValues(typeof(AttributeName)).Length + 1 ) ), "Attributes", "box" ); for(int cnt = 0; cnt < Enum.GetValues(typeof(AttributeName)).Length; cnt++) { GUI.Label(new Rect( OFFSET, //x statStartingPos + (cnt * LINE_HEIGHT), //y STAT_LABEL_WIDTH, //width LINE_HEIGHT //height ), ((AttributeName)cnt).ToString()); GUI.Label(new Rect( STAT_LABEL_WIDTH + OFFSET, //x statStartingPos + (cnt * LINE_HEIGHT), //y BASEVALUE_LABEL_WIDTH, //width LINE_HEIGHT //height ), PC.Instance.GetPrimaryAttribute(cnt).AdjustedBaseValue.ToString()); if(GUI.RepeatButton(new Rect( OFFSET + STAT_LABEL_WIDTH + BASEVALUE_LABEL_WIDTH, //x statStartingPos + (cnt * BUTTON_HEIGHT), //y BUTTON_WIDTH, //width BUTTON_HEIGHT //height ), "-")) { if(Time.time - _lastClick > delayTimer) { if(PC.Instance.GetPrimaryAttribute(cnt).BaseValue > MIN_STARTING_ATTRIBUTE_VALUE) { PC.Instance.GetPrimaryAttribute(cnt).BaseValue--; pointsLeft++; PC.Instance.StatUpdate(); } _lastClick = Time.time; } } if(GUI.RepeatButton(new Rect( OFFSET + STAT_LABEL_WIDTH + BASEVALUE_LABEL_WIDTH + BUTTON_WIDTH, //x statStartingPos + (cnt * BUTTON_HEIGHT), //y BUTTON_WIDTH, //width BUTTON_HEIGHT //height ), "+")) { if(Time.time - _lastClick > delayTimer) { if(pointsLeft > 0) { PC.Instance.GetPrimaryAttribute(cnt).BaseValue++; pointsLeft--; PC.Instance.StatUpdate(); } _lastClick = Time.time; } } } GUI.EndGroup(); } //display all of the vitals private void DisplayVitals() { GUI.BeginGroup(new Rect( 40, 90 + LINE_HEIGHT * (Enum.GetValues(typeof(AttributeName)).Length + 2), ( Screen.width - 80 ) / 2, LINE_HEIGHT * ( Enum.GetValues(typeof(VitalName)).Length + 1 ) ), "Vitals", "box" ); for(int cnt = 0; cnt < Enum.GetValues(typeof(VitalName)).Length; cnt++) { GUI.Label(new Rect( OFFSET, //x statStartingPos + (cnt * LINE_HEIGHT), //y STAT_LABEL_WIDTH, //width LINE_HEIGHT //height ), ((VitalName)cnt).ToString()); GUI.Label(new Rect( OFFSET + STAT_LABEL_WIDTH, //x statStartingPos + (cnt * LINE_HEIGHT), //y BASEVALUE_LABEL_WIDTH, //width LINE_HEIGHT //height ), PC.Instance.GetVital(cnt).AdjustedBaseValue.ToString()); } GUI.EndGroup(); } //display all of the skills private void DisplaySkills() { GUI.BeginGroup(new Rect( Screen.width - ( Screen.width - 20 ) / 2, 90 + LINE_HEIGHT, ( Screen.width - 80 ) / 2, LINE_HEIGHT * ( Enum.GetValues(typeof(SkillName)).Length + 1 ) ), "Attributes", "box" ); for(int cnt = 0; cnt < Enum.GetValues(typeof(SkillName)).Length; cnt++) { GUI.Label(new Rect( 0, //x statStartingPos + (cnt * LINE_HEIGHT), //y STAT_LABEL_WIDTH, //width LINE_HEIGHT //height ), ((SkillName)cnt).ToString()); GUI.Label(new Rect( STAT_LABEL_WIDTH, //x statStartingPos + (cnt * LINE_HEIGHT), //y BASEVALUE_LABEL_WIDTH, //width LINE_HEIGHT //height ), PC.Instance.GetSkill(cnt).AdjustedBaseValue.ToString()); } GUI.EndGroup(); } //show them how many points they have left to spend private void DisplayPointsLeft() { GUI.Label(new Rect(Screen.width - 150 - 30, 90, 150, LINE_HEIGHT), "Points Left: " + pointsLeft.ToString()); } //display label that looks like a button until they have all the requiements filled out to create a character private void DisplayCreateLabel() { // GUI.Label(new Rect( Screen.width/ 2 - 50, statStartingPos + (10 * LINE_HEIGHT), 100, LINE_HEIGHT), "Creating...", "Button"); } //display the button that will call the save method when pressed, and then load the first level private void DisplayCreateButton() { if(GUI.Button(new Rect( Screen.width/ 2 - 50, statStartingPos + (10 * LINE_HEIGHT), 100, LINE_HEIGHT), "Next")) { //change the cur value of the vitals to the max modified value of that vital UpdateCurVitalValues(); GameSetting2.SaveName( PC.Instance.name ); GameSetting2.SaveAttributes( PC.Instance.primaryAttribute ); GameSetting2.SaveVitals( PC.Instance.vital ); GameSetting2.SaveSkills( PC.Instance.skill ); Application.LoadLevel(GameSetting2.levelNames[2]); } } //update the curValue for each vital to be the max value it can be so we do not start with a zero in any vital private void UpdateCurVitalValues() { for(int cnt = 0; cnt < Enum.GetValues(typeof(VitalName)).Length; cnt++) { PC.Instance.GetVital(cnt).CurValue = PC.Instance.GetVital(cnt).AdjustedBaseValue; } } }

Viewing all articles
Browse latest Browse all 7934

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>