2016-11-09 7 views
1

나는 유니티 5.4.2f2 개인을 사용하고, 나는 다음과 같은 C#을 스크립트를 작성했습니다 :으로 Unity3D 구성 요소

using UnityEngine; 
using System; 

public class Outer : MonoBehaviour { 

    // Some public outer fields 

    public class Inner : MonoBehaviour { 
     // Some public inner fields 
    } 

} 

I가 모두 OuterInner를 부착 할 수 있도록하고 싶습니다를 내 장면의 GameObjects. 죄송 합니다만 Inner[Serializable]을 추가하더라도 유니티 속성 검사기에서 사용 가능한 스크립트로 표시되지 않습니다. 중첩 된 클래스를 바깥 세상에 보이도록 만들려는 경우 많은 사람들이 내 설정에 문제가 있다고 말할 것입니다. 그러나이 질문을 위해이 일 수 있는지 알고 싶습니다. 끝난. 즉, 중첩 클래스를 Unity 구성 요소로 사용할 수있게하는 방법이 있습니까?

답변

3

아니요, 중첩 된 클래스를 단일 구성 요소로 사용할 방법이 없습니다. MonoBehaviour 클래스를 단일 구성 요소로 사용하려면 클래스 이름 이 스크립트의 파일 이름과 같아야합니다. 따라서 중첩 된 클래스를 사용할 수 없으므로이되어야합니다.

외부 클래스의 이름을 스크립트 파일의 이름을 바꾸지 않고 원하는 다른 이름으로 변경하면 새 외부 클래스도 사용할 수 없음을 알 수 있습니다.

[EDIT]

는 I는 documentation 알았다. 그리고 내가 말한대로 : "GameObject에 스크립트 구성 요소를 연결하려면 클래스 이름과 파일 이름이 동일해야합니다."

+0

답변 해 주셔서 감사합니다. Unity Answers에 대한 질문이 사용자와 동의하는 것으로 나타 났지만 (아래 링크 참조) 문서에서이 규칙에 대한 공식적인 언급을 찾을 수 없었습니다. 우연히 링크가 있습니까? http://answers.unity3d.com/questions/497914/does-every-c-class-need-to-have-its-own-script-wit.html – Rabadash8820

+0

질문을 보았을 때 화합 문서를 검색했지만 나도 그 정보를 찾을 수 없었다. 나는 단지 이전의 경험 때문에 그것을 알고 있었다. 외부 클래스의 이름을 바꾸고 스크립트를 게임 객체로 드래그하면 – luizcarlosfx

+0

오류 메시지가 표시됩니다. 링크를 이용해 주셔서 감사합니다. 귀하의 도움을 많이 주시면 감사하겠습니다! – Rabadash8820