Beispiel #1
0
        //----- method -----

        private void Initialize()
        {
            var animator = UnityUtility.GetOrAddComponent <Animator>(gameObject);

            if (animator == null)
            {
                return;
            }

            if (isInitialized)
            {
                return;
            }

            var animatorController = animator.runtimeAnimatorController;

            Animator     = animator;
            Clips        = animatorController != null ? animator.runtimeAnimatorController.animationClips : new AnimationClip[0];
            DefaultSpeed = Animator.speed;

            if (stopOnAwake)
            {
                Stop();
            }

            Refresh();

            isInitialized = true;
        }
Beispiel #2
0
        /// <summary>
        /// ExternalResources内や、直接指定での動画再生用のインスタンスを生成.
        /// ※ 頭出しなどを行う時はこの関数で生成したPlayerを使って頭出しを実装する.
        /// </summary>
        public static MovieElement CreateElement(string moviePath, Graphic targetGraphic, Player.ShaderDispatchCallback shaderOverrideCallBack = null)
        {
            if (!File.Exists(moviePath))
            {
                throw new FileNotFoundException(moviePath);
            }

            var movieController = UnityUtility.GetOrAddComponent <CriManaMovieControllerForUI>(targetGraphic.gameObject);

            movieController.target  = targetGraphic;
            movieController.enabled = true;

            UnityUtility.SetActive(movieController.gameObject, true);

            var moviePlayer = movieController.player;

            moviePlayer.SetFile(null, moviePath);

            if (shaderOverrideCallBack != null)
            {
                moviePlayer.SetShaderDispatchCallback(shaderOverrideCallBack);
            }

            var movieElement = new MovieElement(moviePlayer, movieController, moviePath);

            Instance.movieElements.Add(movieElement);

            return(movieElement);
        }
Beispiel #3
0
        //----- property -----

        //----- method -----

        void OnEnable()
        {
            instance = target as AnimationPlayer;

            animator = UnityUtility.GetOrAddComponent <Animator>(instance.gameObject);

            if (!instance.IsInitialized)
            {
                Reflection.InvokePrivateMethod(instance, "Initialize");
            }
        }
        //----- method -----

        protected virtual void Awake()
        {
            AdvGraphicInfo.CallbackCreateCustom += OnCreateCustomGraphicObject;

            canvas = UnityUtility.GetOrAddComponent <Canvas>(gameObject);

            if (canvas != null)
            {
                canvas.worldCamera = canvasCamera;
                canvas.renderMode  = RenderMode.ScreenSpaceCamera;
            }
        }
Beispiel #5
0
        //----- method -----

        public void Initialize(GameObject rootObject, AdvObjectSetting advObjectSetting)
        {
            if (initialized)
            {
                return;
            }

            this.rootObject       = rootObject;
            this.advObjectSetting = advObjectSetting;

            UnityUtility.GetOrAddComponent <AdvObject>(rootObject);

            advObjects = new Dictionary <string, AdvObject>();

            initialized = true;
        }
Beispiel #6
0
        //----- property -----

        //----- method -----

        void OnEnable()
        {
            eventTrigger = UnityUtility.GetOrAddComponent <ObservableEventTrigger>(gameObject);

            eventTrigger
            .OnBeginDragAsObservable()
            .TakeUntilDisable(this)
            .Where(eventData => eventData.pointerDrag.gameObject == gameObject)
            .Select(eventData => eventData.position)
            .Subscribe(position =>
            {
                if (onDragStart != null)
                {
                    onDragStart.OnNext(position);
                }
            })
            .AddTo(this);

            eventTrigger
            .OnDragAsObservable()
            .TakeUntilDisable(this)
            .Where(eventData => eventData.pointerDrag.gameObject == gameObject)
            .Select(eventData => eventData.position)
            .Subscribe(position =>
            {
                if (onDrag != null)
                {
                    onDrag.OnNext(position);
                }
            })
            .AddTo(this);

            eventTrigger
            .OnEndDragAsObservable()
            .TakeUntilDisable(this)
            .Where(eventData => eventData.pointerDrag.gameObject == gameObject)
            .Select(eventData => eventData.position)
            .Subscribe(position =>
            {
                if (onDragEnd != null)
                {
                    onDragEnd.OnNext(position);
                }
            })
            .AddTo(this);
        }
Beispiel #7
0
        //----- method -----

        public override UniTask Initialize()
        {
            elements = new List <TComponent>();

            var parentObjectRt = elementParent.transform as RectTransform;

            if (parentObjectRt != null)
            {
                UnityUtility.GetOrAddComponent <Canvas>(gameObject);

                UnityUtility.GetOrAddComponent <GraphicRaycaster>(gameObject);

                parentObjectRt.FillRect();
            }

            return(UniTask.CompletedTask);
        }
        public MovieElement Play(string moviePath, Graphic targetGraphic)
        {
            var movieController = UnityUtility.GetOrAddComponent <CriManaMovieControllerForUI>(targetGraphic.gameObject);

            movieController.target = targetGraphic;

            var manaPlayer = movieController.player;

            manaPlayer.SetFile(null, moviePath);
            manaPlayer.Start();

            var movieElement = new MovieElement(manaPlayer, moviePath);

            movieElements.Add(movieElement);

            return(movieElement);
        }
Beispiel #9
0
        public void CreateInSceneParent(GameObject sceneRoot)
        {
            if (!UnityUtility.IsNull(parentInScene))
            {
                UnityUtility.SafeDelete(parentInScene.gameObject);
            }

            var popupParent = CreatePopupParent("Popup (InScene)", sceneRoot, ParentInSceneLayer, sceneCanvasOrder);

            var ignoreControl = UnityUtility.GetOrAddComponent <IgnoreControl>(popupParent.gameObject);

            if (ignoreControl != null)
            {
                ignoreControl.Type = IgnoreControl.IgnoreType.ActiveControl;
            }

            parentInScene = popupParent;
        }
        /// <summary>
        /// ExternalResources内や、直接指定での動画再生用のインスタンスを生成.
        /// ※ 頭出しなどを行う時はこの関数で生成したPlayerを使って頭出しを実装する.
        /// </summary>
        public static MovieElement CreateElement(string moviePath, Graphic targetGraphic, Player.ShaderDispatchCallback shaderOverrideCallBack = null)
        {
            var movieController = UnityUtility.GetOrAddComponent <CriManaMovieControllerForUI>(targetGraphic.gameObject);

            movieController.target = targetGraphic;

            var manaPlayer = movieController.player;

            manaPlayer.SetFile(null, moviePath);

            if (shaderOverrideCallBack != null)
            {
                manaPlayer.SetShaderDispatchCallback(shaderOverrideCallBack);
            }

            var movieElement = new MovieElement(manaPlayer, movieController, moviePath);

            Instance.movieElements.Add(movieElement);

            return(movieElement);
        }
Beispiel #11
0
        public void CreateInSceneParent(GameObject sceneRoot)
        {
            if (!UnityUtility.IsNull(parentInScene))
            {
                UnityUtility.SafeDelete(parentInScene.gameObject);
            }

            var popupParent = UnityUtility.Instantiate <PopupParent>(sceneRoot, parentPrefab);

            popupParent.transform.name      = "Popup (InScene)";
            popupParent.Canvas.sortingOrder = sceneCanvasOrder;

            var ignoreControl = UnityUtility.GetOrAddComponent <IgnoreControl>(popupParent.gameObject);

            if (ignoreControl != null)
            {
                ignoreControl.Type = IgnoreControl.IgnoreType.ActiveControl;
            }

            parentInScene = popupParent;
        }
Beispiel #12
0
        //----- property -----

        //----- method -----

        public IObservable <Unit> Initialize()
        {
            if (initialized)
            {
                return(Observable.ReturnUnit());
            }

            #if UNITY_IOS || UNITY_ANDROID || UNITY_WP8
            uniWebView = UnityUtility.GetOrAddComponent <UniWebView>(gameObject);

            // .
            uniWebView.HideToolBar(false);

            // URLリンクをデバイスのデフォルトブラウザで開くかどうかの設定.
            uniWebView.openLinksInExternalBrowser = false;

            // 横スクロールバー.
            uniWebView.SetHorizontalScrollBarShow(false);

            // 縦スクロールバー.
            uniWebView.SetVerticalScrollBarShow(false);
            uniWebView.CleanCache();
            #endif

            #if UNITY_ANDROID
            uniWebView.SetUseWideViewPort(false);
            uniWebView.backButtonEnable = true;
            #endif

            #if UNITY_IOS || UNITY_ANDROID || UNITY_WP8
            uniWebView.OnLoadComplete       += OnLoadComplete;
            uniWebView.OnReceivedMessage    += OnReceivedMessage;
            uniWebView.OnWebViewShouldClose += OnWebViewShouldClose;
            #endif

            initialized = true;

            return(Observable.ReturnUnit());
        }
Beispiel #13
0
        //----- method -----

        private void Initialize()
        {
            var animator = UnityUtility.GetOrAddComponent <Animator>(gameObject);

            if (animator == null)
            {
                return;
            }

            if (isInitialized)
            {
                return;
            }

            animator.runtimeAnimatorController = animatorController;
            animatorInfo = new AnimatorInfo(animator);

            Stop();

            Refresh();

            isInitialized = true;
        }
Beispiel #14
0
        //----- method -----

        void OnEnable()
        {
            var eventTrigger = UnityUtility.GetOrAddComponent <ObservableEventTrigger>(gameObject);

            eventTrigger
            .OnBeginDragAsObservable()
            .TakeUntilDisable(this)
            .Where(eventData =>
            {
                return(eventData.pointerDrag != null &&
                       eventData.pointerDrag.gameObject == gameObject);
            })
            .Select(eventData => eventData.position)
            .Subscribe(position =>
            {
                IsSwipe       = true;
                beginPosition = position;
                beginTime     = DateTime.Now;
            })
            .AddTo(this);

            var onEndDragObservable = eventTrigger
                                      .OnEndDragAsObservable()
                                      .TakeUntilDisable(this)
                                      .Where(eventData => (DateTime.Now - beginTime).TotalSeconds < thresholdSenconds)
                                      .Select(eventData => eventData.position)
                                      .Share();

            // left.
            onEndDragObservable
            .Where(position => beginPosition.x > position.x)
            .Where(position => Mathf.Abs(beginPosition.x - position.x) >= thresholdDistance)
            .Subscribe(_ =>
            {
                if (onSwipeLeft != null)
                {
                    onSwipeLeft.OnNext(Unit.Default);
                }
            })
            .AddTo(this);

            // right.
            onEndDragObservable
            .Where(position => position.x > beginPosition.x)
            .Where(position => Mathf.Abs(position.x - beginPosition.x) >= thresholdDistance)
            .Subscribe(_ =>
            {
                if (onSwipeRight != null)
                {
                    onSwipeRight.OnNext(Unit.Default);
                }
            })
            .AddTo(this);

            // down.
            onEndDragObservable
            .Where(position => beginPosition.y > position.y)
            .Where(position => Mathf.Abs(beginPosition.y - position.y) >= thresholdDistance)
            .Subscribe(_ =>
            {
                if (onSwipeDown != null)
                {
                    onSwipeDown.OnNext(Unit.Default);
                }
            })
            .AddTo(this);

            // up.
            onEndDragObservable
            .Where(position => position.y > beginPosition.y)
            .Where(position => Mathf.Abs(position.y - beginPosition.y) >= thresholdDistance)
            .Subscribe(_ =>
            {
                if (onSwipeUp != null)
                {
                    onSwipeUp.OnNext(Unit.Default);
                }
            })
            .AddTo(this);

            onEndDragObservable.Subscribe(_ => IsSwipe = false).AddTo(this);
        }