我的编译器告诉我它不能将 'void' 转换为 'string' 我明白这意味着什么,但不知道如何修复它
My compiler tells me it cannot convert 'void' to 'string' I understand what this means, but not how to fix it
这里我试图在随机位置实例化定义的GameObject
(在RandomPosOne()
中定义)
但是我的编译器说
cannot convert from 'void' to 'string'
public class Enemyspawner : MonoBehaviour
{
public GameObject Elf;
private void OnCollisionEnter2D(Collision2D collider)
{
if (collider.gameObject.CompareTag("SpawnTrigger1"))
{
InvokeRepeating((SpawnElfOne()), 2f, 3f);
}
void SpawnElfOne()
{
Instantiate(Elf, RandomPosOne(), Quaternion.identity);
}
}
Vector2 RandomPosOne()
{
float x, y;
x = Random.Range(-8.6f, 8.7f);
y = Random.Range(3.05f, -3.36f);
return new Vector2(x, y);
}
Vector2 RandomPosTwo()
{
float x, y;
x = Random.Range(-8.8f, 8.8f);
y = Random.Range(19f, 12.6f);
return new Vector2(x, y);
}
}
将本地 void 方法 SpawnElfOne
移到实例中
并在调用 InvokeRepeating
时将目标方法名称作为 string
参数传递
public class Enemyspawner : MonoBehaviour {
public GameObject Elf;
private void OnCollisionEnter2D(Collision2D collider) {
if (collider.gameObject.CompareTag("SpawnTrigger1")) {
InvokeRepeating("SpawnElfOne", 2f, 3f);
}
}
void SpawnElfOne() {
Instantiate(Elf, RandomPosOne(), Quaternion.identity);
}
Vector2 RandomPosOne() {
float x, y;
x = Random.Range(-8.6f, 8.7f);
y = Random.Range(3.05f, -3.36f);
return new Vector2(x, y);
}
Vector2 RandomPosTwo() {
float x, y;
x = Random.Range(-8.8f, 8.8f);
y = Random.Range(19f, 12.6f);
return new Vector2(x, y);
}
}
这里我试图在随机位置实例化定义的GameObject
(在RandomPosOne()
中定义)
但是我的编译器说
cannot convert from 'void' to 'string'
public class Enemyspawner : MonoBehaviour
{
public GameObject Elf;
private void OnCollisionEnter2D(Collision2D collider)
{
if (collider.gameObject.CompareTag("SpawnTrigger1"))
{
InvokeRepeating((SpawnElfOne()), 2f, 3f);
}
void SpawnElfOne()
{
Instantiate(Elf, RandomPosOne(), Quaternion.identity);
}
}
Vector2 RandomPosOne()
{
float x, y;
x = Random.Range(-8.6f, 8.7f);
y = Random.Range(3.05f, -3.36f);
return new Vector2(x, y);
}
Vector2 RandomPosTwo()
{
float x, y;
x = Random.Range(-8.8f, 8.8f);
y = Random.Range(19f, 12.6f);
return new Vector2(x, y);
}
}
将本地 void 方法 SpawnElfOne
移到实例中
并在调用 InvokeRepeating
string
参数传递
public class Enemyspawner : MonoBehaviour {
public GameObject Elf;
private void OnCollisionEnter2D(Collision2D collider) {
if (collider.gameObject.CompareTag("SpawnTrigger1")) {
InvokeRepeating("SpawnElfOne", 2f, 3f);
}
}
void SpawnElfOne() {
Instantiate(Elf, RandomPosOne(), Quaternion.identity);
}
Vector2 RandomPosOne() {
float x, y;
x = Random.Range(-8.6f, 8.7f);
y = Random.Range(3.05f, -3.36f);
return new Vector2(x, y);
}
Vector2 RandomPosTwo() {
float x, y;
x = Random.Range(-8.8f, 8.8f);
y = Random.Range(19f, 12.6f);
return new Vector2(x, y);
}
}