The error 'unity cannot convert from method group to string' is usually caused when you're trying to assign a method or function to a string variable without actually invoking the function. In C# (the scripting language used in Unity), functions and methods are considered to be their own type of data, known as 'method groups'.
For instance, if you have a function
Foo() and you write
string bar = Foo;, this would cause the error because
Foo is a method group, not a string. You're essentially trying to assign the function itself (rather than the result of calling the function) to a string variable.
To resolve this error, you need to make sure that you're assigning the result of a function call to your string variable, rather than the function itself. You do this by including parentheses after the function name to invoke it.
Foo() is a function that returns a string, you should write
string bar = Foo(); instead of
string bar = Foo;. The parentheses after
Foo tell C# that you want to call the function and use its return value, rather than assigning the function itself to the variable.
If the function requires parameters, make sure to include them within the parentheses. For example, if
Foo() required an integer parameter, you would call it like so:
string bar = Foo(10);.
Also, ensure that the function or method you're calling returns a value that can actually be converted to a string. If the function doesn't return anything (
void), or if it returns a type that can't be automatically converted to a string, you'll still run into errors. In this case, you'd need to modify the function so that it returns a string or a type that can be automatically converted to a string (like