얼마 전에 나는 Unity로 작업하기 시작했지만 여전히 밀접하게 연결된 스크립트 문제로 어려움을 겪고 있습니다. 이 문제를 피하기 위해 코드를 어떻게 구성 할 수 있습니까?
예를 들면 다음과 같습니다.
건강과 사망 시스템을 별도의 스크립트로 만들고 싶습니다. 또한 플레이어 캐릭터가 움직이는 방식 (마리오에서와 같은 물리 기반의 관성 컨트롤과 수퍼 미트 보이 (Super Meat Boy)에서와 같이 빡빡하고 경악 한 컨트롤)을 변경할 수있는 서로 다른 교환식 보행 스크립트를 갖고 싶습니다. Health 스크립트는 플레이어의 체력이 0에 도달 할 때 Die () 메서드를 트리거 할 수 있도록 Death 스크립트에 대한 참조를 보유해야합니다. Death 스크립트는 사용 된 워킹 스크립트에 대한 참조를 보유해야합니다. 좀비에 질려 요).
나는 것이 일반적으로 같은 인터페이스를 만들고 IWalking
, IHealth
그리고 IDeath
나는 내 코드의 나머지 부분을 파괴하지 않고 충동에서 이러한 요소를 변경할 수 있습니다 그래서. 플레이어 객체에 별도의 스크립트로 설정하도록하십시오 PlayerScriptDependancyInjector
. 아마 스크립트를 공개해야한다고 IWalking
, IHealth
그리고 IDeath
의존성을 끌어 적절한 스크립트를 놓아 관리자에서 레벨 디자이너에 의해 설정 될 수 그래서, 속성을.
이를 통해 게임 오브젝트에 동작을 쉽게 추가하고 하드 코딩 된 종속성에 대해 걱정하지 않아도됩니다.
유니티의 문제
문제는 유니티에서 나는 관리자의 인터페이스를 노출 할 수 없다는 것입니다, 나는 내 자신의 사찰을 작성하는 경우, 참조 직렬화 얻을 실 거예요, 그것은 불필요한 작업을 많이합니다. 그렇기 때문에 단단히 결합 된 코드를 작성해야합니다. 내 Death
스크립트는 스크립트에 대한 참조를 노출합니다 InertiveWalking
. 그러나 플레이어 캐릭터가 엄격하게 제어하기를 원한다면 TightWalking
스크립트를 끌어서 놓을 수 없으므로 Death
스크립트 를 변경해야합니다 . 짜증나 나는 그것을 다룰 수 있지만, 나는 이런 일을 할 때마다 내 영혼이 울다.
Unity 인터페이스보다 선호되는 대안은 무엇입니까? 이 문제를 어떻게 해결합니까? 내가 발견 이 있지만, 이미 알고있는 것을 알려줍니다, 그리고 그것을 어떻게 유니티에서 그렇게 말해하지 않습니다! 이것 역시 어떻게해야하는지, 어떻게해야하는지에 대해 논의합니다.
대체로 코딩 방법을 배우는 게임 디자인 배경을 가지고 Unity에 온 사람들을 위해 작성된 것으로 생각하며 일반 개발자를 위해 Unity에 대한 리소스는 거의 없습니다. Unity에서 코드를 구성하는 표준 방법이 있습니까, 아니면 내 방법을 찾아야합니까?
The problem is that in Unity I can't expose interfaces in the inspector
내 생각이 "왜 안돼"였기 때문에 "검사관의 인터페이스 노출"이 무슨 뜻인지 이해하지 못하는 것 같습니다.