示例#1
0
        //----- method -----

        private TViewModel GetViewModel()
        {
            if (viewModel != null && viewModel.IsDisposed)
            {
                viewModel = null;
            }

            if (viewModel == null)
            {
                var viewRoot = gameObject.AncestorsAndSelf()
                               .Select(x => UnityUtility.GetInterface <IViewRoot>(x))
                               .FirstOrDefault(x => x != null);

                if (viewRoot != null)
                {
                    viewModel = viewRoot.GetViewModel() as TViewModel;
                }
                else
                {
                    Debug.LogError("IViewRoot interface not found in ancestors hierarchy.");
                }
            }

            return(viewModel);
        }