Hey there,
I’m converting this script to c# from js : http://wiki.unity3d.com/index.php?title=Creating_a_Drag_and_Drop_Spell_Bar
The original Js version is:
function checkReq(item, list){
var result = false;
for(i=0; i<list.length; i++){
if(item == list*){*
-
result = true;*
-
break;*
-
}*
- }*
- return result;*
}
I converted it to this:
void checkReq(item, list){
- var result = false;*
- for(i=0; i<list.length; i++){*
_ if(item == list*){_
_ result = true;_
_ break;_
_ }_
_ }_
_ return result;_
_}*_
I think I’ve done it right, but i keep getting this error: (212,18): error CS1041: Identifier expected
Can someone help me?
Sorry to say it that way, but this is one of the worst UnityScript scripts i’ve seen. He’s abusing an untyped ArrayList as a kind of “class” by pushing all different kind of information into one list. If you would translate this 1:1 to C# it would be a casting hell beside that it’s kinda slow. If you want to know how it would look like, just do this:
- Create a new Unity project
- Copy all UnityScript files you want to “convert” into this project.
- Build the project as standalone application
- Locate the “Assembly-UnityScript.dll” inside the data folder of the build
-
Download ILSpy and open the above mentioned DLL with it by dragging it into the window
- Make sure you have set the language to C#
- Locate the class you’re after and copy the code.
Again i wouldn’t even try to convert this mess to C#. You should use a class for your items and use meaningful names.
Btw the generic list already has a function that checks if a given item is in the list, so the function “checkReq” is quite useless / redundant.
Firstly, change var to bool. var is a proper keyword in C#, but it’s not as efficient as just declaring it as the proper type. Secondly, you can’t return a value from a void method. Change the method’s return type to bool.
Nidre
4
you should add the identifiers of the paramters for example
bool checkReq(GameObject item,GameObject[] list){
bool result = false;
for(i=0; i<list.length; i++){
if(item == list*){*
result = true;
break;
}
}
return result;
}
Change “GameObject” with the type you want to use as parameter
bool checkReq(item, list){
bool result = false;
for(i=0; i<list.length; i++){
if(item == list*){*
result = true;
break;
}
}
return result;
}
Also, what does the error say?