Unity MVC: Model View Controller 모델 뷰 컨트롤러 프레임워크

6560 단어 unity
MVC의 아키텍처는 대기업 큰 프로젝트에 주로 활용될 정도로 다양하다.이 프레임워크를 사용하면 많은 결합을 해야 하기 때문에 후기에 더욱 쉽게 유지하고 이식할 수 있다.
M Model 데이터 업데이트, 데이터 저장 V View 뷰 표시 뷰 버튼 알림 C Control 컨트롤은 뷰와 데이터의 상호작용을 제어합니다.
주의해야 할 것은 Mode는 반드시 데이터 저장 대상을 구분해야 한다는 것이다. 데이터가 업데이트된 대상인 View와 마찬가지로 보기 UI와 버튼(사람) 상호작용 UI도 구분해야 한다. 일반적으로 게이머들은 버튼 UI를 통해 데이터를 업데이트하고 데이터를 업데이트한 후에 다시 업데이트 UI 디스플레이로 돌아갈 수 있다.
대체적으로 이런 절차이지만 실현되기에는 여러 가지 방식이 있다. 여기에 알림 방식을 사용한다(이벤트 사용)

Model

public class TheModel : MonoBehaviour {

    // model View 
    public TheData theData = new TheData();

    public delegate void MyDelegate(TheData data);
    public event MyDelegate MyEvent;

    public void SetHp(int hp){
        this.theData.HP += hp;
        DoEvent ();
    }

    public void SetMp(int mp){
        this.theData.MP += mp;
        DoEvent ();
    }

    public void DoEvent(){
        if (MyEvent != null) {
            MyEvent (theData);// 
        }
    }
}
public class TheData{
    public int HP = 0;
    public int MP = 0;
}

View

public class TheView : MonoBehaviour {

    private Text hpText;
    private Text mpText;

    private Button hpBtn;
    private Button mpBtn;

    void Awake(){
        hpText = transform.Find ("HPText").GetComponent ();
        mpText = transform.Find ("MPText").GetComponent ();
        hpBtn = transform.Find ("UpHPBtn").GetComponent

Controller

public class TheController : MonoBehaviour {

    public static TheController instance;

    private TheModel theModel;
    private TheView theView;

    void Awake(){
        instance = this;
        theModel = GetComponent ();
        theView = GameObject.Find ("Canvas").GetComponent ();
    }
    void Start(){
        theModel.MyEvent += theView.UpdateUI;// 
    }

    public void UpHP(){
        theModel.SetHp (1);
    }

    public void UpMP(){
        theModel.SetMp (2);
    }
}

위의 코드를 보면 이곳의 View 클래스는 전문적으로 디스플레이를 하고 데이터 업데이트가 없고 Controller 클래스와만 관련된다. 모델 클래스는 데이터 업데이트만 하고 Controller 클래스와만 관련된다. Controller 클래스 자체는 모델 클래스와 View 클래스에 대해 너무 많은 조작을 하지 않고 대상에 따라 서로 조정하는 방법만 인용한다.

MVC의 대략적인 구현 프로세스를 요약합니다.


초기화: UI 구성 요소 초기화 UI 디스플레이 업데이트, 클래스 설정 게시자, 구독자 제어
theModel.MyEvent += theView.UpdateUI;// 

이후: 버튼(UI 인터랙티브)을 누르면 컨트롤러 클래스의 데이터 클래스 대상이 업데이트 데이터 방법을 호출하는 데이터 업데이트가 완료되면 이벤트를 발표하고 구독자(UI 디스플레이 유형)를 업데이트합니다.
위탁 이벤트 형식의 매개 변수는 Data 형식의 대상(저장 데이터 클래스 대상)이다. 이런 방법은 호출할 때 현재의 실시간 데이터를 전송할 수 있다.
이벤트 발표 형식을 통해 프로그램이if로 판단하는 것을 피할 수 있고 Update에서 실행하는 횟수를 줄여 성능 최적화를 할 수 있다.
좀 더 복잡한 실현 방식https://blog.csdn.net/liaoshengg/article/details/82154516

좋은 웹페이지 즐겨찾기