나는이 문제를 알아 내는데 어려움을 겪고 있으며 나를 돕는 구글을 거의 찾지 못했습니다.다른 GameObject에서 monobehaviour 스크립트를 인스턴스화하는 방법
MonoBehaviour에서 스크립트가 파생되면 "new"키워드를 사용하여 인스턴스를 생성 할 수 없습니다. 벌금. 그래서 저는 이것을 어떻게하는지 살펴 보았습니다. 그리고 GameObject를 얻은 다음, GameComponent를 얻는 것이 갈 길입니다.하지만 아주 멀지는 않습니다.
그래서 저는 GameObject를 호출했습니다. NetworkManager. 그것에 첨부 된 것은 NetworkManager라는 스크립트입니다. 나는 Main이라는 또 다른 GameObject를 가지고 있는데 Main (놀람!)이라는 스크립트가 붙어있다. 기본적으로 내가하고 싶은 일은 networkManager.hostServer() 또는 networkManager.kickPlayer()와 같은 일을 할 수 있도록 기본 스크립트 내에서 네트워크 관리자를 "인스턴스화"하는 것입니다.
이 내 main.cs 스크립트입니다 :
public class Main : MonoBehaviour {
Player player;
GameObject networkManager;
UiManager uiManager;
// Use this for initialization
void Start()
{
player = new Player(Network.player, Environment.UserName, 0, 0);
networkManager = GameObject.FindGameObjectWithTag("NetworkManager").GetComponent<NetworkManager>();
uiManager = new UiManager();
}
다음과 같이 내가 점점 오전 오류 : "암시 적으로 형식을 변환 할 수 없습니다 'UnityEngine.GameObject'에서 'Assets.scripts.NetworkManager'"
을".GetComponent();"를 추가 할 때 문제가 발생합니다. 부품. 이제는 함수가 컴포넌트 타입을 찾고 대신 작동하지 않는 NetworkManager 타입을 얻는다면 ... 그리고 그것이 내가 붙어있는 곳입니다. 나는 이것을 어떻게 작동 시킬지 전혀 모르며, Google 검색에서 15 분 제한을 초과했습니다.
나는 왜이 질문이 내려 졌는지 이해하지 못한다. 이것은 좋은 질문입니다 - 적어도 downvoting 때 약간의 피드백을 남겨주세요. – luqui