Example #1
0
        public bool Play(string stateName, float time = 0.0f, float transitionTime = 0.3f)
        {
            if (!_stateManager.Exists(stateName))
            {
                DebugLog.Error($"EasyAnimationPlayable.Play : アニメーションステートが存在しないため再生できませんでした。{stateName}", DebugLogColor.animation);
                return(false);
            }

            _blendingName   = string.Empty;
            _transitionTime = transitionTime;

            foreach (var state in _stateManager.states)
            {
                state.originWeight = state.weight;

                if (state.StateName == stateName)
                {
                    state.destinationWeight = 1f;
                    state.SetTime(time);
                    state.Play();
                }
                else
                {
                    state.destinationWeight = 0f;
                    state.isBlending        = false;
                }
            }

            DebugLog.Normal($"EasyAnimationPlayable.Play : {stateName}を再生します", DebugLogColor.animation);

            return(true);
        }
Example #2
0
        public static void SignInAnonymously(Action <string> onResult)
        {
            DebugLog.Normal($"FireBase Auth : 匿名ログインを行います");

            FirebaseAuth.DefaultInstance.SignInAnonymouslyAsync().ContinueWithOnMainThread(task =>
            {
                if (task.IsCanceled)
                {
                    DebugLog.Error("FireBase Auth : 匿名ログインをキャンセルしました");
                    return;
                }

                if (task.IsFaulted)
                {
                    DebugLog.Error("FireBase Auth : 匿名ログインに失敗しました。" + task.Exception);
                    return;
                }

                FirebaseUser anonymousUser = task.Result;
                DebugLog.Normal($"FireBase Auth : 匿名ユーザーを作成しました {anonymousUser.DisplayName} ({anonymousUser.UserId})");
                DidAnonymouslyLoggedIn = true;

                onResult?.Invoke(anonymousUser.UserId);
            });
        }
Example #3
0
        public bool Blend(string blendTreeName, float transitionTime = 0.3f)
        {
            var target = _stateManager.FindBlend(blendTreeName);

            if (target == null)
            {
                DebugLog.Error($"EasyAnimationPlayable.Blend : ブレンドアニメーションステートが存在しないため再生できませんでした。{blendTreeName}", DebugLogColor.animation);
                return(false);
            }

            _blendingName   = blendTreeName;
            _transitionTime = transitionTime;

            foreach (var state in _stateManager.states)
            {
                state.destinationWeight = 0f;
                state.originWeight      = state.weight;
                state.isBlending        = false;
            }

            target.Play();
            target.ComputeDestinationWeights(0f, 0f);

            DebugLog.Normal($"EasyAnimationPlayable.Blend : {blendTreeName}を再生します。", DebugLogColor.animation);

            return(true);
        }
Example #4
0
        public static void GetOrderByFirst(string key, string sortKey, int fetchCount, Action <string> onSuccess, Action onFailed)
        {
            DatabaseReference   databaseReference    = FirebaseDatabase.DefaultInstance.RootReference;
            DatabaseReference   databaseReferenceKey = databaseReference.Child(key);
            Task <DataSnapshot> task = databaseReferenceKey.OrderByChild(sortKey).LimitToFirst(fetchCount).GetValueAsync();

            task.ContinueWith(snapshotResultTask =>
            {
                if (snapshotResultTask.IsCanceled)
                {
                    DebugLog.Normal($"Firebase RealtimeDatabase : Canceled データの降順取得に失敗しました : DB:{key}");
                    onFailed?.Invoke();
                }
                else if (snapshotResultTask.IsFaulted)
                {
                    DebugLog.Normal($"Firebase RealtimeDatabase : Faulted データの降順取得に失敗しました : DB:{key}");
                    onFailed?.Invoke();
                }
                else if (snapshotResultTask.IsCompleted)
                {
                    string json = snapshotResultTask.Result.GetRawJsonValue();
                    DebugLog.Normal($"Firebase RealtimeDatabase : Completed データを降順取得しました : DB:{key} Json:{json}");
                    onSuccess(json);
                }
            });
        }
Example #5
0
        public static void GetByID(string key, string id, Action <string> onSuccess, Action onFailed)
        {
            DatabaseReference   databaseReference    = FirebaseDatabase.DefaultInstance.RootReference;
            DatabaseReference   databaseReferenceKey = databaseReference.Child(key);
            DatabaseReference   databaseReferenceId  = databaseReferenceKey.Child(id);
            Task <DataSnapshot> task = databaseReferenceId.GetValueAsync();

            task.ContinueWith(snapshotResultTask =>
            {
                if (snapshotResultTask.IsCanceled)
                {
                    DebugLog.Normal($"Firebase RealtimeDatabase : Canceled データの取得に失敗しました : DB:{key}");
                    onFailed?.Invoke();
                }
                else if (snapshotResultTask.IsFaulted)
                {
                    DebugLog.Normal($"Firebase RealtimeDatabase : Faulted データの取得に失敗しました : DB:{key}");
                    onFailed?.Invoke();
                }
                else if (snapshotResultTask.IsCompleted)
                {
                    string json = snapshotResultTask.Result.GetRawJsonValue();
                    DebugLog.Normal($"Firebase RealtimeDatabase : Completed データを取得しました : DB:{key} Json:{json}");
                    onSuccess(json);
                }
            });
        }
Example #6
0
        public static void SetByID(string key, string id, string json, Action onSuccess, Action onFailed)
        {
            DatabaseReference databaseReference    = FirebaseDatabase.DefaultInstance.RootReference;
            DatabaseReference databaseReferenceKey = databaseReference.Child(key);
            DatabaseReference databaseReferenceId  = databaseReferenceKey.Child(id);
            Task task = databaseReferenceId.SetRawJsonValueAsync(json);

            task.ContinueWith(resultTask =>
            {
                if (resultTask.IsCanceled)
                {
                    DebugLog.Normal($"Firebase RealtimeDatabase : Canceled データの保存に失敗しました : DB:{key}");
                    onFailed?.Invoke();
                }
                else if (resultTask.IsFaulted)
                {
                    DebugLog.Normal($"Firebase RealtimeDatabase : Faulted データの保存に失敗しました : DB:{key}");
                    onFailed?.Invoke();
                }
                else if (resultTask.IsCompleted)
                {
                    DebugLog.Normal($"Firebase RealtimeDatabase : Completed データを保存しました : DB:{key} Json:{json}");
                    onSuccess?.Invoke();
                }
            });
        }
Example #7
0
        public void SetSpeed(float speed)
        {
            DebugLog.Normal($"EasyAnimationPlayable.SetSpeed : 再生速度を{speed}にします", DebugLogColor.animation);

            foreach (var state in _stateManager.states)
            {
                state.SetSpeed(speed);
            }
        }
Example #8
0
        public void Stop()
        {
            DebugLog.Normal($"EasyAnimationPlayable.Stop : 停止します", DebugLogColor.animation);

            foreach (var state in _stateManager.states)
            {
                state.Stop();
            }

            _blendingName = string.Empty;
        }
        public bool RemoveBlend(string removeStateName)
        {
            var findState = FindBlend(removeStateName);

            if (findState != null)
            {
                blends.Remove(findState);
                DebugLog.Normal($"EasyAnimationStateManager.RemoveBlend : ブレンドアニメーションステートを削除しました。{removeStateName}", DebugLogColor.animation);
                return(true);
            }

            DebugLog.Warning($"EasyAnimationStateManager.RemoveBlend : ブレンドアニメーションステートが存在していないため、追加に失敗しました。{removeStateName}", DebugLogColor.animation);
            return(false);
        }
Example #10
0
        public static void SignInAnonymously(Action <string> onSignIn)
        {
            FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task => {
                DependencyStatus dependencyStatus = task.Result;

                if (dependencyStatus == DependencyStatus.Available)
                {
                    DebugLog.Normal("Firebase : ユーザー設定を行います");
                    MFBFAuth.SignInAnonymously(onSignIn);
                }
                else
                {
                    DebugLog.Error("Firebase : 依存関係を解決できませんでした: " + dependencyStatus);
                }

                MFBFDatabase.SetupDatabase(DATA_BASE_URL);
            });
        }
        public bool Add(AnimationClip clip, string stateName, PlayableGraph graph, AnimationMixerPlayable mixer)
        {
            var findState = Find(stateName);

            if (findState == null)
            {
                var addState = new EasyAnimationState(clip, stateName, graph);
                states.Add(addState);
                addState.Stop();
                addState.index = states.Count - 1;
                int inputCount = addState.index + 1;
                mixer.SetInputCount(inputCount);
                graph.Connect(addState.Playable, 0, mixer, addState.index);
                DebugLog.Normal($"EasyAnimationStateManager.Add : アニメーションステートを追加しました。{clip.name}", DebugLogColor.animation);
                return(true);
            }

            DebugLog.Warning($"EasyAnimationStateManager.Add : 同名アニメーションステートが存在しているため、追加に失敗しました。{clip.name}", DebugLogColor.animation);
            return(false);
        }
        public bool AddBlend(EasyBlendTree tree, PlayableGraph graph, AnimationMixerPlayable mixer)
        {
            var findBlend = FindBlend(tree.name);

            if (findBlend == null)
            {
                for (int i = 0; i < tree.BlendMotions.Count; i++)
                {
                    var    clip          = tree.BlendMotions[i].Motion as AnimationClip;
                    string animationName = tree.name + "_" + clip.name + "_" + i;
                    Add(clip, animationName, graph, mixer);
                }

                blends.Add(new EasyAnimationStateBlend(this, tree, graph, mixer));
                DebugLog.Normal($"EasyAnimationStateManager.AddBlend : ブレンドアニメーションステートを追加しました。{tree.name}", DebugLogColor.animation);
                return(true);
            }

            DebugLog.Warning($"EasyAnimationStateManager.AddBlend : 同名ブレンドアニメーションステートが存在しているため、追加に失敗しました。{tree.name}", DebugLogColor.animation);
            return(false);
        }
Example #13
0
        public static void Setup(string userId)
        {
            DebugLog.Normal("Firebase Analytics : データ収集を有効化します");
            FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);

#if UNITY_ANDROID
            FirebaseAnalytics.SetUserProperty(
                "OS",
                "Android");
#elif UNITY_IOS
            FirebaseAnalytics.SetUserProperty(
                "OS",
                "iOS");
#else
            FirebaseAnalytics.SetUserProperty(
                "OS",
                "Other");
#endif
            FirebaseAnalytics.SetSessionTimeoutDuration(new TimeSpan(0, 30, 0));
            FirebaseAnalytics.SetUserId(userId);
        }
Example #14
0
 public static void Login(string userId)
 {
     DebugLog.Normal($"Firebase Analytics : ユーザーID : {userId} がログインしました");
     FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLogin);
 }