- Home /
Expression denotes a `type', where a `variable', `value' or `method group' was expected
Got an error : Expression denotes a type', where a
variable', value' or
method group' was expected
This error is at the list line of this script(in the if(Popup.List...) line) In this Col : " GUIContent("Filer") " If I do new GUIContent it gives me 2 new errors: (also in if(Popup.List...) line)
The best overloaded method match for `Popup.List(UnityEngine.Rect, ref bool, ref int, UnityEngine.GUIContent, UnityEngine.GUIContent[], UnityEngine.GUIStyle)' has some invalid arguments
Argument 2: Cannot convert type bool' to
bool&'
The script "Popup.cs" is that one :
using UnityEngine;
public class Popup { public static bool List (Rect position, ref bool showList, ref int listEntry, GUIContent buttonContent, GUIContent[] listContent, GUIStyle listStyle) { return List(position, ref showList, ref listEntry, buttonContent, listContent, "button", "box", listStyle); }
public static bool List (Rect position, ref bool showList, ref int listEntry, GUIContent buttonContent, GUIContent[] listContent,
GUIStyle buttonStyle, GUIStyle boxStyle, GUIStyle listStyle) {
bool done = false;
if(position.Contains(Event.current.mousePosition) &&!showList && Event.current.type == EventType.MouseUp && Event.current.button == 0){
showList = true;
}
else if(!position.Contains(Event.current.mousePosition) && showList && Event.current.type == EventType.MouseUp && Event.current.button == 0)
{
done = true;
}
GUI.Label(position, buttonContent, buttonStyle);
if (showList) {
Rect listRect = new Rect(position.x, 58, 100, listStyle.CalcHeight(listContent[0], 10.0f)*listContent.Length);
GUI.Box(listRect, "", boxStyle);
listEntry = GUI.SelectionGrid(listRect, listEntry, listContent, 1, listStyle);
}
if (done) {
showList = false;
}
return done;
}
}
and the second script:
using UnityEngine; using System.Collections;
public class PopupListUsage : MonoBehaviour { private bool showList= false; private int listEntry= 0; private GUIContent[] list; GUIStyle listStyle; private bool picked= false; void Start (){
// Make some content for the popup list
list = new GUIContent[6];
list[0] = new GUIContent(" Import");
list[1] = new GUIContent(" Open");
list[2] = new GUIContent(" Open recent");
list[3] = new GUIContent(" Save");
list[4] = new GUIContent(" Save as");
list[5] = new GUIContent(" Exit");
listStyle.padding.left = listStyle.padding.right = listStyle.padding.top = listStyle.padding.bottom = 8;
}
void OnGUI (){ //Popup script is in Popup/Popup.cs Folder. if(Popup.List ( new Rect(50,32.5f,75,25), showList, listEntry, GUIContent("Filer"), list, listStyle)) print(list[listEntry]); } }
Answer by Mike 3 · Jul 14, 2010 at 10:48 PM
it should be:
new GUIContent("Filer")
As you're creating the object, it's not a function
Edit:
if(Popup.List ( new Rect(50,32.5f,75,25), ref showList, ref listEntry, new GUIContent("Filer"), list, listStyle))
The second and third parameters need to be marked as ref(erence) so they can be modified inside the function
Yeah I know, I tried it, but then it gives me 2 errors, I'll edit my post and write them.
YOU ARE $$anonymous$$Y GOD $$anonymous$$I$$anonymous$$$$anonymous$$ Too bad you've no time to chat with me again :( u forgot how to connect to the mIRC? :O