This commit is contained in:
MrTorex committed 2026-02-18 20:13:09 +03:00
1 parent 0d5e6b6dec
commit c12d653cbc
647 files changed
+194585 -117

No files matched your search

@@ -0,0 +1,53 @@
using KinematicCharacterController;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using UnityEngine.Playables;
namespace KinematicCharacterController.Examples
{
public class PlayableMover : MonoBehaviour, IMoverController
{
public PhysicsMover Mover;
public float Speed = 1f;
public PlayableDirector Director;
private Transform _transform;
private void Start()
{
_transform = this.transform;
Director.timeUpdateMode = DirectorUpdateMode.Manual;
Mover.MoverController = this;
}
// This is called every FixedUpdate by our PhysicsMover in order to tell it what pose it should go to
public void UpdateMovement(out Vector3 goalPosition, out Quaternion goalRotation, float deltaTime)
{
// Remember pose before animation
Vector3 _positionBeforeAnim = _transform.position;
Quaternion _rotationBeforeAnim = _transform.rotation;
// Update animation
EvaluateAtTime(Time.time * Speed);
// Set our platform's goal pose to the animation's
goalPosition = _transform.position;
goalRotation = _transform.rotation;
// Reset the actual transform pose to where it was before evaluating.
// This is so that the real movement can be handled by the physics mover; not the animation
_transform.position = _positionBeforeAnim;
_transform.rotation = _rotationBeforeAnim;
}
public void EvaluateAtTime(double time)
{
Director.time = time % Director.duration;
Director.Evaluate();
}
}
}