First, I apologize for making a necro thread. However, the answer for that thread didn’t work, as it had already been implemented in the code, yet I was still getting the same error. I’ve tried Google, I’ve tried crawling around the forums, and I’ve tried every possible solution I can think of, but to no avail.
Here’s the code.
using UnityEngine;
using System.Collections;
using System; //added for the enum class
public class CharacterGenerator : MonoBehaviour {
private PlayerCharacter _toon;
private const int STARTING_POINTS = 30;
private const int MIN_STARTING_ATTRIBUTE_VALUE = 10;
private int pointsLeft;
private const int OFFSET = 10;
private const int LINE_HEIGHT = 20;
private const int STAT_LABEL_WIDTH = 100;
private const int BASEVALUE_LABEL_WIDTH = 30;
private const int BUTTON_WIDTH = 20;
private const int BUTTON_HEIGHT = 20;
private int statStartingPos = 40;
//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 = MIN_STARTING_ATTRIBUTE_VALUE ;
}
_toon.StatUpdate ();
}
//update is called once per frame
void Update(){
}
void OnGUI() {
DisplayName ();
DisplayPointsLeft ();
DisplayVitals ();
DisplayAttributes ();
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, //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
_toon.GetPrimaryAttribute(cnt).AdjustedBaseValue.ToString());
if(GUI.Button(new Rect(OFFSET + STAT_LABEL_WIDTH + BASEVALUE_LABEL_WIDTH, //x
statStartingPos + (cnt * BUTTON_HEIGHT), //y
BUTTON_WIDTH, //width
BUTTON_HEIGHT), //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 + BASEVALUE_LABEL_WIDTH + BUTTON_WIDTH, //x
statStartingPos + (cnt * BUTTON_HEIGHT), //y
BUTTON_WIDTH, //width
BUTTON_HEIGHT), //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 + 7 * LINE_HEIGHT), STAT_LABEL_WIDTH, LINE_HEIGHT), ((VitalName)cnt), ToString());
GUI.Label (new Rect(OFFSET + STAT_LABEL_WIDTH, statStartingPos + ((cnt + 7) * LINE_HEIGHT), BASEVALUE_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 + STAT_LABEL_WIDTH + BASEVALUE_LABEL_WIDTH + BUTTON_WIDTH * 2 + OFFSET * 2, statStartingPos + (cnt * LINE_HEIGHT), STAT_LABEL_WIDTH, LINE_HEIGHT), ((VitalName)cnt), ToString());
GUI.Label (new Rect(OFFSET + STAT_LABEL_WIDTH + BASEVALUE_LABEL_WIDTH + BUTTON_WIDTH * 2 + OFFSET * 2 + STAT_LABEL_WIDTH, statStartingPos + (cnt * 25), BASEVALUE_LABEL_WIDTH, LINE_HEIGHT), _toon.GetSkill(cnt).AdjustedBaseValue.ToString());
}
}
private void DisplayPointsLeft(){
GUI.Label (new Rect (250, 10, 100, 25), "Points: " + pointsLeft.ToString());
}
}
As for the errors…
Line - 54
The best overloaded method match for ‘UnityEngine.GUI.Label(UnityEngine.Rect, string, UnityEngine.GUIStyle)’ has some invalid arguments
Line - 58
Argument ‘2’: cannot convert from ‘AttributeName’ to ‘string’
Line - 93
) expected
Line - 100 [2 errors]
#1 The best overloaded method match for ‘UnityEngine.GUI.Label(UnityEngine.Rect, string, UnityEngine.GUIStyle)’ has some invalid arguments
#2 Argument ‘2’: cannot convert from ‘VitalName’ to ‘string’
So what am I doing wrong here?