Added FinalIK

This commit is contained in:
2026-08-12 16:46:38 +03:00
parent 487e0d72ff
commit 1dc80339d4
1124 changed files with 768831 additions and 139 deletions
@@ -0,0 +1,52 @@
using UnityEngine;
using System.Collections;
using RootMotion.FinalIK;
namespace RootMotion.Demos {
/// <summary>
/// Resets an interaction object to its initial position and rotation after "resetDelay" from interaction trigger.
/// </summary>
public class ResetInteractionObject : MonoBehaviour {
public float resetDelay = 1f; // Time since interaction trigger to reset this Transform
private Vector3 defaultPosition;
private Quaternion defaultRotation;
private Transform defaultParent;
private Rigidbody r;
void Start() {
// Store the defaults
defaultPosition = transform.position;
defaultRotation = transform.rotation;
defaultParent = transform.parent;
r = GetComponent<Rigidbody>();
}
// Called by the Interaction Object
void OnPickUp(Transform t) {
if (!enabled) return;
StopAllCoroutines();
StartCoroutine(ResetObject(Time.time + resetDelay));
}
// Reset after a certain delay
private IEnumerator ResetObject(float resetTime) {
while (Time.time < resetTime) yield return null;
var poser = transform.parent.GetComponent<Poser>();
if (poser != null) {
poser.poseRoot = null;
poser.weight = 0f;
}
transform.parent = defaultParent;
transform.position = defaultPosition;
transform.rotation = defaultRotation;
if (r != null) r.isKinematic = false;
}
}
}