예제 #1
0
        public Sequence Destroy(DestructionLog log)
        {
            var sequence = DOTween.Sequence();

            if (!entities.TryGetValue(log.Entity, out var entityGO))
            {
                Debug.LogWarning(Warnings.EntityNotPresent(log.Entity));
                return(sequence);
            }

            GameObject.Destroy(entityGO);
            entities.Remove(log.Entity);

            return(sequence);
        }
예제 #2
0
        public Sequence Move(MovementLog log)
        {
            var sequence = DOTween.Sequence();

            if (!entities.TryGetValue(log.Entity, out var entityGO))
            {
                Debug.LogWarning(Warnings.EntityNotPresent(log.Entity));
                return(sequence);
            }

            var oldPosition = entityGO.transform.position;
            var newPosition = tilemap.GetCellCenterWorld(log.To.ToCell());

            sequence.Append(entityGO.transform
                            .DOMove(newPosition, movementDuration)
                            .SetEase(movementEase));

            var direction = newPosition - oldPosition;

            entityGO.transform.rotation = Quaternion.LookRotation(direction, Vector3.up);

            return(sequence);
        }