rabidus-test/Assets/Dreamteck/Splines/Examples/Projection/Scripts/BallCamera.cs

33 lines
1.1 KiB
C#

namespace Dreamteck.Splines.Examples
{
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BallCamera : MonoBehaviour
{
public Rigidbody rb;
public SplineProjector projector;
public float positionSpeed = 10f;
public Vector3 offset = Vector3.zero;
public float rotationSpeed = 0.5f;
public Vector3 rotationOffset = Vector3.zero;
Transform trs;
private void Awake()
{
trs = transform;
trs.position = rb.position + projector.result.rotation * offset;
trs.rotation = projector.result.rotation * Quaternion.Euler(rotationOffset);
}
void FixedUpdate()
{
Vector3 idealPosition = rb.position + trs.rotation * offset;
Quaternion idealRotation = projector.result.rotation * Quaternion.Euler(rotationOffset);
trs.position = Vector3.Lerp(trs.position, idealPosition, Time.deltaTime * positionSpeed);
trs.rotation = Quaternion.Slerp(trs.rotation, idealRotation, Time.deltaTime * rotationSpeed);
}
}
}