예제 #1
0
        private void OnEnable()
        {
        #if !UNITY_EDITOR
            try
            {
        #endif

            var controllerBase = UIManager.Instance.GetController(UIConfig.NewbieGuide);
            DataModel = controllerBase.GetDataModel("") as GuideDataModel;
            BindRoot.SetBindDataSource(DataModel);

            EventDispatcher.Instance.AddEventListener(UIEvent_NextGuideEvent.EVENT_TYPE, OnEvent_NextStep);

            Mask.SetActive(false);
            Guide.SetActive(true);

            var data = GuideManager.Instance.GetCurrentGuideData();
            if (null != data)
            {
                PostponeShow(data.DelayTime * 0.001f);
            }

            EventDispatcher.Instance.DispatchEvent(new UI_BlockMainUIInputEvent(0));
        #if !UNITY_EDITOR
        }

        catch (Exception ex)
        {
            Logger.Error(ex.ToString());
        }
        #endif
        }
예제 #2
0
    public void Install()
    {
        if (_isInit)
        {
            return;
        }
        _isInit = true;

        if (FrameworkConfig.Instance.UseHotFixMode)
        {
            _hand     = UnityHelper.GetTheChildNodeComponetScripts <Image>(LitFramework.HotFix.UIManager.Instance.TransPopUp, "Image_Hand");
            _parentBG = LitFramework.HotFix.UIManager.Instance.MaskImage;
        }
        else
        {
            _hand     = UnityHelper.GetTheChildNodeComponetScripts <Image>(LitFramework.Mono.UIManager.Instance.TransPopUp, "Image_Hand");
            _parentBG = LitFramework.Mono.UIManager.Instance.MaskImage;
        }
        //加载新手引导所需各类资源
        _circleMat   = GameObject.Instantiate <Material>(Resources.Load <Material>("Shaders/Guide/Material/CircleMateria"));
        _rectMat     = GameObject.Instantiate <Material>(Resources.Load <Material>("Shaders/Guide/Material/RectMateria"));
        _hand.sprite = GameObject.Instantiate <Sprite>(Resources.Load <Sprite>("Prefabs/UI/common_hand"));

        Assert.IsNotNull(_circleMat, "GuideShaderController circleMat 未加载成功");
        Assert.IsNotNull(_rectMat, "GuideShaderController rectMat 未加载成功");
        Assert.IsNotNull(_parentBG, "GuideShaderController parentBG 未加载成功");
        Assert.IsNotNull(_hand, "GuideShaderController hand 未加载成功");

        _parentBG.enabled  = true;
        _parentBG.material = _initType == LitShaderType.Circle ? _circleMat : _rectMat;

        _isFocusing     = false;
        _material       = _parentBG.material;
        _guideConfig    = GuideConfig.Instance;
        _guideDataModel = GuideDataModel.Instance;
        _ev             = _parentBG.GetComponent <EventPenetrate>();
        if (_ev == null)
        {
            _ev = _parentBG.gameObject.AddComponent <EventPenetrate>();
        }
        _targetThreshold = _initType == LitShaderType.Circle ? _guideConfig.thresholdCircle : _guideConfig.thresholdRect;

        if (FrameworkConfig.Instance.UseHotFixMode)
        {
            _uiCam    = LitFramework.HotFix.UIManager.Instance.UICam;
            _rootCanv = LitFramework.HotFix.UIManager.Instance.TransRoot.GetComponent <Canvas>();
        }
        else
        {
            _uiCam    = LitFramework.Mono.UIManager.Instance.UICam;
            _rootCanv = LitFramework.Mono.UIManager.Instance.TransRoot.GetComponent <Canvas>();
        }

        _parentBG.enabled = false;

        ResetGuide();
        HideHand();
        GC.Collect();
    }
예제 #3
0
    public void Uninstall()
    {
        _circleMat = null;
        _rectMat   = null;
        _parentBG  = null;
        _hand      = null;

        _material = null;
        _ev       = null;

        _guideConfig    = null;
        _guideDataModel = null;

        GC.Collect();
    }