-
Notifications
You must be signed in to change notification settings - Fork 0
/
PlayerTracker.cs
34 lines (30 loc) · 1.22 KB
/
PlayerTracker.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerTracker : MonoBehaviour
{
public Transform trackedObject;
public float maxDistance = 10;
public float moveSpeed = 20;
public float updateSpeed = 10;
[Range(0,10)]
public float currentDistance = 5;
private string moveAxis = "Mouse ScrollWheel";
private GameObject ahead;
private MeshRenderer _renderer;
public float hideDistance = 1.5f;
void Start()
{
ahead = new GameObject("ahead");
// _renderer = trackedObject.gameObject.GetComponent<MeshRenderer>();
}
void LateUpdate()
{
ahead.transform.position = trackedObject.position + trackedObject.forward * (maxDistance * 0.25f);
currentDistance += Input.GetAxisRaw(moveAxis) * moveSpeed * Time.deltaTime;
currentDistance = Mathf.Clamp(currentDistance, 0, maxDistance);
transform.position = Vector3.MoveTowards(transform.position, trackedObject.position + Vector3.up * currentDistance - trackedObject.forward * (currentDistance + maxDistance * 0.5f), updateSpeed * Time.deltaTime);
transform.LookAt(ahead.transform);
//_renderer.enabled = (currentDistance > hideDistance);
}
}