2

MVC 프로그래밍 모델을 사용합니다. Unity의 계층 구조 관리자를 사용하여 문제가 발생했습니다. 컨트롤러 스크립트 C_CardDrag가 있다고 가정 해 보겠습니다. 이제는 여러 레이어가 중첩 된 UI 항목을 드래그하기 때문에이 C_CardDrag 스크립트가 루트 객체가 아닌 카드 안의 아이콘에 연결된다는 것은 쉽게 알 수 없습니다. 아래 이미지에서 의미하는 것을 볼 수 있습니다 (파란색 하이라이트는 최상위 오브젝트가 아닌 C_Drag가 첨부되어야하는 곳입니다. 그렇지 않으면 전체가 드래그 된 가운데 아이콘 만 원할 때 드래그됩니다). enter image description here중첩 계층 구조 이름 지정 규칙 및 첨부 된 스크립트를 추적하는 방법

중첩 된 개체에 표시해야 할 때 클래스를 디자인하고 이름을 지정하는 것이 매우 혼란 스럽다고 생각합니다.

첨부 된 위치에 스크립트 이름을 명확하게하기 위해 따라야 할 디자인 사례가 있습니까?

예를 들어 Tree 개체가 있고 여러 개의 브랜치가 있다고 가정 해보십시오. 그리고 내가 C_Tree 스크립트와 C_Branch 스크립트를 가지고 있다고 가정 해 봅시다. 어떻게하면 C_Tree가 트리, 최상위 레벨 객체 인 C_Branch가 중첩 된 UI 객체로 이동한다는 것을 명확히 알 수 있습니까?

업데이트 :

좋은 자원 여기 찾았 개발중인 소프트웨어처럼 Component based game engine design

+1

MVC 모델은 Unity와 같은 구성 요소 기반 프레임 워크에 실제로 적용되지 않습니다. GameObject (또는 프리 팹)는 로직, 데이터 또는 뷰 (또는 혼합 물)를 관리 할 수있는 구성 요소를 가질 수 있습니다. 게임 객체 계층 구조의 특정 부분에있는 객체에 추가해야하는 스크립트가 있고 목적이 아닌 트리의 위치를 ​​기반으로 이름을 지정해야하는 것은 정말 무서운 것입니다. 대신 게임 개체와 해당 스크립트를 공용 개체 *와 *로 작동하도록 디자인하여 부모 개체와 잘 상호 작용할 수 있습니다. – LearnCocos2D

+1

혼란스러운 부분은 MVC의 사용을 실제로 지원하거나 묵인하지 않는 프레임 워크에이를 적용하는 좋은 방법 (MVC)을 취하지 않기 때문입니다. 따라서 실제로는 MVC의 사용을 어렵게 만듭니다. 인스턴스화 가능한 프리 패브 (prefabs)를 가진 컴포넌트 기반 프레임 워크의 장점을 활용할 수 있습니다. – LearnCocos2D

+0

흥미 롭습니다. 일관성을 유지하기 위해 적응할 수있는 프레임 워크를 설명하는 좋은 자료를 제안 해 주시겠습니까? – Aggressor

답변

1

, 당신은 단지 해당 프로젝트에 맞는 적절한 건축 및 디자인 패턴을 적용해야합니다.

예 :

다른 장치에 사용되는 게임을 제작하고있었습니다. Unity를 사용하면 Android에서 iOS로 쉽게 전환 할 수 있습니다. 이 게임은 다른 장치에서 완전히 다르게 재생 될 수 있으므로 MVC를 사용하지 않았습니다.

또 다른 게임은 피어 투 피어 (Peer to Peer) 주위에 구축되었습니다.

전반적으로 많은 옵션이 있습니다.

파일을 구성하는 방법은 편집기의 Project 섹션에있는 폴더를 기준으로합니다. 나는 이런 식으로 뭔가를 사용하려면 :

enter image description here

enter image description here

당신은 모델 계층 구조에없는 알 수 있습니다. 모델에 MonoBehaviours를 사용하지 않습니다. 경우에 따라 컨트롤러도 MonoBehaviour가 아닌 코드가 될 수 있습니다. 그렇기 때문에 모든 조직을 Hierarchy이 아닌 Project에 두는 것을 선호합니다.

+0

MVC와 함께 갔기 때문에 GameObjects를 계층 구조로 구성하는 방법을 보여줄 수 있습니까? – Aggressor

+0

추가됨. 모델이 계층 구조에 없음을 알 수 있습니다. 모델에 MonoBehaviours를 사용하지 않습니다. – FunctionR

+0

흥미로운 것은 멀티 플레이어 게임을하는 경우 MVC 사용 여부에 영향을 줍니까? – Aggressor