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(); } }