- Home /
This post has been wikified, any user with enough reputation can edit it.
Question by
mellowninja · Mar 31, 2012 at 10:48 AM ·
guibuttonconstants
GUI Button to a GUI slider help ?
Hello i'm looking for someone to help me please
The script changes the Values of the stats, skills and vitals but i've used a GUI Button to change the values how can i convert the button into a horizontal slider ?
using UnityEngine;
using System.Collections; using System;
public class CharacterGenerator : MonoBehaviour { private PlayerCharacter _toon; private const int Starting_Points = 150; private const int Min_Starting_Attribute_Value = 10; private const int Starting_Value = 25; private int pointsLeft;
private const int offSet = 5;
private const int Line_Height = 20;
private const int Stat_Label_Width = 100;
private const int Base_Label_Width = 30;
private const int Button_Width = 20;
private const int Button_Height = 20;
private int statStartingPos = 40;
public GUIStyle Labels;
public GUIStyle Name;
public GUIStyle Buttons1;
public GUIStyle Buttons2;
// Use this for initialization
void Start () {
_toon = new PlayerCharacter();
_toon.Awake();
pointsLeft = Starting_Points;
for(int cnt = 0; cnt < Enum.GetValues(typeof(AttributeName)).Length; cnt++) {
_toon.GetPrimaryAttribute(cnt).BaseValue = Starting_Value;
pointsLeft -= (Starting_Value - Min_Starting_Attribute_Value);
}
_toon.StatUpdate();
}
// Update is called once per frame
void Update () {
}
void OnGUI() {
DisplayName();
DisplayPointsLeft();
DisplayAttributes();
DisplayVitals();
DisplaySkills();
}
private void DisplayName() {
GUI.Label(new Rect(10, 10, 50, 25), "Name:");
_toon.Name = GUI.TextField(new Rect(65, 10, 100, 25), _toon.Name);
}
private void DisplayAttributes() {
for(int cnt = 0; cnt < Enum.GetValues(typeof(AttributeName)).Length; cnt++) {
GUI.Label(new Rect(offSet, statStartingPos + (cnt * Line_Height), Stat_Label_Width, Line_Height ), ((AttributeName)cnt).ToString());
GUI.Label(new Rect(Stat_Label_Width + offSet , statStartingPos + (cnt * Line_Height), Base_Label_Width, Line_Height), _toon.GetPrimaryAttribute(cnt).AdjustedBaseValue.ToString());
if(GUI.Button(new Rect(offSet + Stat_Label_Width + Base_Label_Width, statStartingPos + (cnt * Button_Height), Button_Width, Button_Height), "-")) {
if(_toon.GetPrimaryAttribute(cnt).BaseValue > Min_Starting_Attribute_Value) {
_toon.GetPrimaryAttribute(cnt).BaseValue--;
pointsLeft++;
_toon.StatUpdate();
}
}
if(GUI.Button(new Rect(offSet + Stat_Label_Width + Base_Label_Width * 2, statStartingPos + (cnt * Button_Height), Button_Width, Button_Height), "+")) {
if(pointsLeft> 0) {
_toon.GetPrimaryAttribute(cnt).BaseValue++;
pointsLeft--;
_toon.StatUpdate();
}
}
}
}
private void DisplayVitals() {
for(int cnt = 0; cnt < Enum.GetValues(typeof(VitalName)).Length; cnt++) {
GUI.Label(new Rect(offSet, statStartingPos + ((cnt + 4) * Line_Height), Stat_Label_Width, Line_Height), ((VitalName)cnt).ToString());
GUI.Label(new Rect(offSet + Stat_Label_Width, statStartingPos + ((cnt + 4) * Line_Height), Base_Label_Width, Line_Height), _toon.GetVital(cnt).AdjustedBaseValue.ToString());
}
}
private void DisplaySkills() {
for(int cnt = 0; cnt < Enum.GetValues(typeof(SkillName)).Length; cnt++) {
GUI.Label(new Rect(offSet, statStartingPos + ((cnt + 6) * Line_Height), Stat_Label_Width, Line_Height), ((SkillName)cnt).ToString());
GUI.Label(new Rect(offSet + Stat_Label_Width, statStartingPos + ((cnt + 6) * Line_Height), Base_Label_Width, Line_Height), _toon.GetSkill(cnt).AdjustedBaseValue.ToString());
}
}
private void DisplayPointsLeft() {
GUI.Label(new Rect(250, 10, 100, 25), "Points Left > " + pointsLeft.ToString());
}
}
Help would be appreciated
Comment
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Bool script error 1 Answer
Button position 4 Answers
In Game Credits? 1 Answer
getting !slot->GetLocalAABB().IsValid() and isFinite() errors with GUI Buttons 0 Answers