public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem) { CharacterAnimationComponent sampleAnimationComponent = new CharacterAnimationComponent { curAnimation = idle.GetName(), idle = idle.GetName(), run = run.GetName() }; dstManager.AddComponentData(entity, sampleAnimationComponent); }
protected static void UpdateAnimation(float deltaTime, BaseGameplayRule gameplayRule, CharacterAnimationComponent animationData, BaseCharacterEntity characterEntity, Transform transform) { if (characterEntity.isRecaching) { return; } // Update current velocity animationData.velocityCalculationDeltaTime += deltaTime; if (animationData.velocityCalculationDeltaTime >= UPDATE_VELOCITY_DURATION) { if (!animationData.previousPosition.HasValue) { animationData.previousPosition = transform.position; } var currentMoveDistance = transform.position - animationData.previousPosition.Value; animationData.currentVelocity = currentMoveDistance / animationData.velocityCalculationDeltaTime; animationData.previousPosition = transform.position; animationData.velocityCalculationDeltaTime = 0f; } var model = characterEntity.Model; if (model != null) { model.UpdateAnimation(characterEntity.CurrentHp <= 0, animationData.currentVelocity, gameplayRule.GetMoveSpeed(characterEntity) / characterEntity.CacheBaseMoveSpeed); } }