|
|
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using VRTK;
-
- public class SmoothFollowBehaviour : MonoBehaviour
- {
- [Header("Base Settings")]
- [SerializeField]
- private Transform m_Target;
-
- [SerializeField]
- private float m_SmoothValue = 0.5f;
-
- [Header("Teleport")]
- [SerializeField]
- private bool m_snapOnTeleport = false;
-
- [SerializeField]
- private VRTK_BasicTeleport m_teleportScript;
-
-
- private void OnEnable()
- {
- if (m_teleportScript != null)
- m_teleportScript.Teleported += OnTeleport;
- }
-
- private void OnDisable()
- {
- if (m_teleportScript != null)
- m_teleportScript.Teleported -= OnTeleport;
- }
-
- void LateUpdate()
- {
- if (m_Target != null)
- {
- transform.position = Vector3.Lerp(transform.position, m_Target.position, m_SmoothValue);
- transform.rotation = Quaternion.Lerp(transform.rotation, m_Target.rotation, m_SmoothValue);
- }
- }
-
-
- void OnTeleport(object sender, DestinationMarkerEventArgs e)
- {
- if (m_snapOnTeleport)
- {
- transform.position = m_Target.position;
- transform.rotation = m_Target.rotation;
- }
-
- }
-
- }
|