38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Unity.VisualScripting;
|
|
using UnityEngine;
|
|
|
|
[System.Serializable]
|
|
public class MapTransforms {
|
|
public Transform vrTarget;
|
|
public Transform ikTarget;
|
|
public Vector3 trackingPositionOffset;
|
|
public Vector3 trackingRotationOffset;
|
|
|
|
public void VRMapping() {
|
|
ikTarget.position = vrTarget.TransformPoint(trackingPositionOffset);
|
|
ikTarget.rotation = vrTarget.rotation * Quaternion.Euler(trackingRotationOffset);
|
|
}
|
|
}
|
|
|
|
public class AvatarController : MonoBehaviour
|
|
{
|
|
[SerializeField] private MapTransforms testa;
|
|
[SerializeField] private MapTransforms manoSinistra;
|
|
[SerializeField] private MapTransforms manoDestra;
|
|
[SerializeField] private float turnSmoothness;
|
|
[SerializeField] Transform ikHead;
|
|
[SerializeField] Vector3 headBodyOffset;
|
|
|
|
void LateUpdate() {
|
|
transform.position = ikHead.position + headBodyOffset;
|
|
transform.forward = Vector3.Lerp(transform.forward, Vector3.ProjectOnPlane(ikHead.forward, Vector3.up).normalized, Time.deltaTime * turnSmoothness);
|
|
|
|
testa.VRMapping();
|
|
manoSinistra.VRMapping();
|
|
manoDestra.VRMapping();
|
|
}
|
|
|
|
}
|