コード例 #1
0
ファイル: EventToken.cs プロジェクト: ThatLousyGuy/Monolith
 /// <summary>
 /// Adds a child animation to be activated after the specified duration
 /// after current EventToken's animation completes.
 /// </summary>
 /// <param name="child"></param>
 public void AddChildAnimator(IAnimator child, TimeSpan? timespan)
 {
     if (!_Children.ContainsKey(child))
     {
         _Children.Add(child, timespan);
     }
 }
コード例 #2
0
ファイル: EventToken.cs プロジェクト: ThatLousyGuy/Monolith
 /// <summary>
 /// Adds a child animation to be activated when the current
 /// EventToken's animation completes.
 /// </summary>
 /// <param name="child"></param>
 public void AddChildAnimator(IAnimator child)
 {
     if (!_Children.ContainsKey(child))
     {
         _Children.Add(child, null);
     }
 }
コード例 #3
0
    void Awake()
    {
        m_Animator = m_Player.GetComponent<IAnimator> ();
        m_PlayerController = m_Player.GetComponent<PlayerController> ();

        m_InputSource = GetComponent<InputJoyStick> ();
        m_InputSource.SetController (m_Animator, m_PlayerController);
    }
コード例 #4
0
ファイル: Menu.cs プロジェクト: Nessphoro/VelesConflict
 public Menu(IAnimator<Vector2> InAnimator, IAnimator<Vector2> OutAnimator)
 {
     Buttons = new List<IButton>();
     OutVectorAnimator = OutAnimator;
     InVectorAnimator = InAnimator;
 }
コード例 #5
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> Play(float[] path, IAnimator animator)
 {
     return(Play(path, animator, DefaultScheduler));
 }
コード例 #6
0
 public static UniTask ToMaterialPropertyFloat(this IAnimator <float> animator, Renderer renderer, string name, CancellationToken cancellationToken = default, SkipToken skipToken = default, IScheduler scheduler = default)
 {
     CheckAlive(renderer);
     return(Anime.Play(animator, new MaterialPropertyFloatTranslator(renderer, name), scheduler, CancellationTokenSource.CreateLinkedTokenSource(renderer.GetCancellationTokenOnDestroy(), cancellationToken).Token, skipToken));
 }
コード例 #7
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> PlayIn(float from, float inEnd, float to, IAnimator inAnimator)
 {
     return(PlayIn(from, inEnd, to, inAnimator, DefaultScheduler));
 }
コード例 #8
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> PlayInOut(float from, float inEnd, float outStart, float to, IAnimator inAnimator, IAnimator outAnimator)
 {
     return(PlayInOut(from, inEnd, outStart, to, inAnimator, outAnimator, DefaultScheduler));
 }
コード例 #9
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> PlayRelative(float from, float relative, IAnimator animator, IScheduler scheduler)
 {
     return(Play(from, from + relative, animator, scheduler));
 }
コード例 #10
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> PlayRelative(this IObservable <float> self, float relative, IAnimator animator)
 {
     return(PlayRelative(self, relative, animator, DefaultScheduler));
 }
コード例 #11
0
ファイル: Controller.cs プロジェクト: godenzzm/ActionGameDemo
    protected void Awake()
    {
        m_Animator = null;
        m_CurrentAnimatorFrame = 0;
        m_AntecedentAnimatorFrame = 0;

        m_FrameCount = 0;

        m_TurnSpeed = 15;
        m_MoveDir = transform.forward;

        m_OnTrimToGround = false;
        m_GroundPosition = Vector3.zero;
        m_FallSpeed = 0.005f;
        m_GravityFact = 0.98f;
        m_GravityFrameCount = 0;

        m_AnimationSpeed = m_ConstantAnimationSpeed;
    }
コード例 #12
0
 private void Inject(IAnimator animator)
 {
     this.animator = animator;
 }
コード例 #13
0
 public static async UniTask Play <T>(IAnimator <T> animator, ITranslator <T> translator, IScheduler scheduler = default, CancellationToken cancellationToken = default)
 {
     await PlayInternal(animator, translator, scheduler, cancellationToken);
 }
コード例 #14
0
 public static UniTask ToProgress <T>(this IAnimator <T> animator, IProgress <T> progress, CancellationToken cancellationToken = default, IScheduler scheduler = default) => Anime.Play(animator, new ProgressTranslator <T>(progress), scheduler, cancellationToken);
コード例 #15
0
 public static UniTask ToLocalPosition(this IAnimator <Vector3> animator, Component component, CancellationToken cancellationToken   = default, IScheduler scheduler = default) => Anime.Play(animator, new LocalPositionTranslator(component.transform), scheduler, cancellationToken);
コード例 #16
0
 public static UniTask ToGlobalRotation(this IAnimator <Quaternion> animator, Component component, CancellationToken cancellationToken   = default, IScheduler scheduler = default) => Anime.Play(animator, new GlobalRotationTranslator(component.transform), scheduler, cancellationToken);
コード例 #17
0
 public static UniTask ToLocalScaleZ(this IAnimator <float> animator, Component component, CancellationToken cancellationToken   = default, IScheduler scheduler = default) => Anime.Play(animator, new LocalScaleXTranslator(component.transform, 2), scheduler, cancellationToken);
コード例 #18
0
 public static UniTask ToLocalScaleY(this IAnimator <float> animator, GameObject gameObject, CancellationToken cancellationToken = default, IScheduler scheduler = default) => Anime.Play(animator, new LocalScaleXTranslator(gameObject.transform, 1), scheduler, cancellationToken);
コード例 #19
0
        private SceneObject unitSprite(IGrouping <Vector2D, CombatantInfo> hex, IEnumerable <PlayerInfo> players)
        {
            var       polygons = new List <PolygonData>();
            IAnimator animator = null;

            var hexTransform = Matrix4.CreateTranslation(hexX(hex.Key), hexY(hex.Key), 0);

            var unitSelected = (this.currentUnit != null && this.currentUnit.Position == hex.Key);
            var unit         = unitSelected ? this.currentUnit : biggestStack(hex);
            var unitSprite   = GalaxyTextures.Get.Sprite(unit.Design.ImagePath);
            var alpha        = players.All(x => unit.CloakedFor(x) || x == unit.Owner) ? 0.65 : 1;

            var unitDrawable = new PolygonData(
                CombatantZ,
                new SpriteData(hexTransform, unitSprite.Id, Color.FromArgb((int)(alpha * 255), unit.Owner.Color), null),
                SpriteHelpers.UnitRect(unitSprite).ToList()
                );

            if (unitSelected)
            {
                animator = new OscillatingAlpha(
                    unitDrawable,
                    AnimationPeriod,
                    0.6,
                    x => (x + 0.4) * alpha,
                    unit.Owner.Color);
            }

            polygons.Add(unitDrawable);

            var otherUnits = hex.Where(x => x != unit).Select(x => x.Owner).Distinct().ToList();

            for (int i = 0; i < otherUnits.Count; i++)
            {
                polygons.Add(new PolygonData(
                                 CombatantZ,
                                 new SpriteData(
                                     Matrix4.CreateScale(0.2f, 0.2f, 1) * Matrix4.CreateTranslation(0.5f, 0.2f * i + 0.5f, 0) * hexTransform,
                                     GalaxyTextures.Get.FleetIndicator.Id,
                                     otherUnits[i].Color,
                                     null
                                     ),
                                 SpriteHelpers.UnitRect(GalaxyTextures.Get.FleetIndicator).ToList()
                                 ));
            }

            var formatter = new ThousandsFormatter();

            polygons.AddRange(
                TextRenderUtil.Get.BufferText(formatter.Format(unit.Count), -1, 0, CombatantZ, 1 / Layers).
                Select(layer =>
                       new PolygonData(
                           layer.Key,
                           new SpriteData(                      //TODO(v0.9) text as sprite data? should be SDF
                               Matrix4.CreateScale(0.2f, 0.2f, 1) * Matrix4.CreateTranslation(0.5f, -0.5f, 0) * hexTransform,
                               TextRenderUtil.Get.TextureId,
                               Color.Gray,
                               null
                               ),
                           layer.Value.ToList()
                           )
                       ));

            return(new SceneObject(polygons, animator: animator));
        }
コード例 #20
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> PlayRelative(float from, float relative, IAnimator animator)
 {
     return(PlayRelative(from, relative, animator, DefaultScheduler));
 }
コード例 #21
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> Play(this IObservable <float> self, float from, float to, IAnimator animator, IScheduler scheduler)
 {
     return(self.Concat(Play(from, to, animator, scheduler)));
 }
コード例 #22
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> PlayRelative(this IObservable <float> self, float from, float relative, IAnimator animator, IScheduler scheduler)
 {
     return(self.Concat(Play(from, from + relative, animator, scheduler)));
 }
コード例 #23
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> Play(this IObservable <float> self, float from, float[] path, IAnimator animator)
 {
     return(Play(self, from, path, animator, DefaultScheduler));
 }
コード例 #24
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> PlayRelative(this IObservable <float> self, float relative, IAnimator animator, IScheduler scheduler)
 {
     return(self.Select(x => Play(x, x + relative, animator, scheduler)).Switch());
 }
コード例 #25
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
        public static IObservable <float> Play(this IObservable <float> self, float from, float[] path, IAnimator animator, IScheduler scheduler)
        {
            var merged = new float[path.Length + 1];

            merged[0] = from;
            Array.Copy(path, 0, merged, 1, path.Length);
            return(self.Concat(Play(merged, animator, scheduler)));
        }
コード例 #26
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
        public static IObservable <float> PlayOut(float from, float outStart, float to, IAnimator outAnimator, IScheduler scheduler)
        {
            var velocity          = outAnimator.CalcStartVelocity(Mathf.Abs(to - outStart));
            var linearAnimator    = Easing.Linear(velocity);
            var compositeAnimator = new CompositeAnimator(new[]
            {
                Tuple.Create(linearAnimator, Mathf.Abs(outStart - from)),
                Tuple.Create(outAnimator, Mathf.Abs(to - outStart)),
            });

            return(Play(new[] { from, outStart, to }, compositeAnimator, scheduler));
        }
コード例 #27
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> Play(float from, float to, IAnimator animator, IScheduler scheduler)
 {
     return(PlayInternal(animator, Mathf.Abs(from - to), scheduler)
            .Select(x => Mathf.LerpUnclamped(from, to, x)));
 }
コード例 #28
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
        public static IObservable <float> PlayInOut(float from, float inEnd, float outStart, float to, IAnimator inAnimator, IAnimator outAnimator, IScheduler scheduler)
        {
            var       inVelocity  = inAnimator.CalcFinishVelocity(Mathf.Abs(inEnd - from)).PerSecond;
            var       outVelocity = outAnimator.CalcStartVelocity(Mathf.Abs(to - outStart)).PerSecond;
            IAnimator linearAnimator;

            if (Math.Abs(inVelocity - outVelocity) < EqualDelta)
            {
                linearAnimator = Motion.Uniform((float)((inVelocity + outVelocity) / 2.0));
            }
            else
            {
                var accel = (outVelocity * outVelocity - inVelocity * inVelocity) / (2.0f * Mathf.Abs(outStart - inEnd));
                linearAnimator = Motion.Acceleration((float)accel, (float)inVelocity);
            }

            var compositeAnimator = new CompositeAnimator(new[]
            {
                Tuple.Create(inAnimator, Mathf.Abs(inEnd - from)),
                Tuple.Create(linearAnimator, Mathf.Abs(outStart - inEnd)),
                Tuple.Create(outAnimator, Mathf.Abs(to - outStart)),
            });

            return(Play(new[] { from, inEnd, outStart, to }, compositeAnimator, scheduler));
        }
コード例 #29
0
 public static UniTask ToGlobalPositionY(this IAnimator <float> animator, Component component, CancellationToken cancellationToken   = default, IScheduler scheduler = default) => Anime.Play(animator, new GlobalPositionXTranslator(component.transform, 1), scheduler, cancellationToken);
コード例 #30
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> Play(float from, float to, IAnimator animator)
 {
     return(Play(from, to, animator, DefaultScheduler));
 }
コード例 #31
0
 public static UniTask ToLocalPosition(this IAnimator <Vector2> animator, GameObject gameObject, CancellationToken cancellationToken = default, IScheduler scheduler = default) => Anime.Play(animator, new LocalPositionTranslator(gameObject.transform), scheduler, cancellationToken);
コード例 #32
0
 public void SetController(IAnimator animatorController, MonoBehaviour playerController)
 {
     m_AnimatorController = animatorController;
     m_PlayerController = playerController as PlayerController;
 }
コード例 #33
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> Play(this IObservable <float> self, float[] path, IAnimator animator, IScheduler scheduler)
 {
     return(self.Select(x =>
     {
         var merged = new float[path.Length + 1];
         merged[0] = x;
         Array.Copy(path, 0, merged, 1, path.Length);
         return Observable.Return(x).Concat(Play(merged, animator, scheduler));
     }).Switch());
 }
コード例 #34
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
 public static IObservable <float> Play(this IObservable <float> self, float to, IAnimator animator)
 {
     return(Play(self, to, animator, DefaultScheduler));
 }
コード例 #35
0
 public static UniTask ToGlobalPositionZ(this IAnimator <float> animator, GameObject gameObject, CancellationToken cancellationToken = default, IScheduler scheduler = default) => Anime.Play(animator, new GlobalPositionXTranslator(gameObject.transform, 2), scheduler, cancellationToken);
コード例 #36
0
ファイル: CaptureForm.cs プロジェクト: logtcn/greenshot
		/// <summary>
		/// Helper method to simplify check
		/// </summary>
		/// <param name="animator"></param>
		/// <returns></returns>
		bool isAnimating(IAnimator animator) {
			if (animator == null) {
				return false;
			}
			return animator.hasNext;
		}
コード例 #37
0
ファイル: AnimeVector1.cs プロジェクト: tuita520/AnimeRx
        public static IObservable <float> Play(this IObservable <float> self, float to, IAnimator animator, IScheduler scheduler)
        {
            var hot = self.Publish().RefCount();

            return(Observable.Merge(hot, hot.ContinueWith(x => Play(x, to, animator, scheduler))));
        }