using UnityEngine;
using System.Collections;
public class s2 : MonoBehaviour {
// Use this for initialization
void Start () {
AController a = new AController();
a.Init();
a.FunA();
}
// Update is called once per frame
void Update () {
}
}
using UnityEngine;
using System.Collections;
public class BaseController<C, V>
{
public V view;
}
using UnityEngine;
using System.Collections;
public class BaseView<C, V> : MonoBehaviour
where C : BaseController<C, V>
where V : BaseView<C, V>
{
public C controller;
}
using UnityEngine;
using System.Collections;
public class AController : BaseController< AController , AView> {
// Use this for initialization
public void Init()
{
AView view = new AView();
this.view = view;
}
public void FunA()
{
Debug.Log("FunA" + view.str);
}
public void FunB()
{
Debug.Log("FunB" + view.str);
}
}
using UnityEngine;
using System.Collections;
public class AView : BaseView< AController, AView>
{
public string str = "AView";
public void FunC()
{
Debug.Log("FunC");
}
public void FunD()
{
Debug.Log("FunD");
}
}