Hy, ребята, я получаю сообщение об ошибке CS0120 в Unity со следующим кодом:
Ошибка CS0120: ссылка на объект требуется для нестатического поля, метода, или свойство 'PortalScript.Spawn ()'
Сценарий 1: здесь я пытаюсь создать новый GameObject
на экране с определенным расстоянием до проигрывателя.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class PortalScript : MonoBehaviour
{
public GameObject Portal; // referenced at Inspector
GameObject Player = GameObject.Find("Player");
public void Spawn()
{
bool portalSpawned = false;
while (!portalSpawned)
{
Vector3 portalPosition = new Vector3(Random.Range(-7f, 7f), Random.Range(-4f, 4f), 0f);
if((portalPosition - Player.transform.position).magnitude < 3)
{
continue;
}
else
{
// Instantiate at position.
Instantiate(Portal, portalPosition, Quaternion.identity);
portalSpawned = true;
}
}
}
}
Сценарий 2: Этот сценарий находится на проигрывателе. В случае, если он должен вызвать метод Spawn из сценария 1
public class Point : MonoBehaviour
{
public PortalScript Spawn;
void Update()
{
score = updateScore;
switch (score)
{
case 1:
PortalScript.Spawn(); // ERROR at this line
break;
}
}
Если я напишу код из сценария 1 непосредственно в сценарий 2, это сработает.
Мой мозг останавливается в этой точке. Спасибо за вашу помощь и дайте мне знать, если вам нужна дополнительная информация.