Files
ProgettoAvatar/Assets/Scripts/AvatarController.cs
2024-05-28 10:26:45 +02:00

39 lines
1.2 KiB
C#

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