Move through camera direction. Simple x-ray shader for player
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
using FishNet.Object;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Players
|
||||
{
|
||||
[RequireComponent(typeof(Camera))]
|
||||
public sealed class CameraFollow : NetworkBehaviour
|
||||
{
|
||||
[SerializeField] private Vector3 _offset = new(-10, 15, -10);
|
||||
[SerializeField] private Vector3 _rotation = new(45, 45, 0);
|
||||
[SerializeField] private Transform _target;
|
||||
[SerializeField, Range(0f, 360f)] private float _orbitAngle;
|
||||
[SerializeField] private float _mouseOrbitSensitivity = 180f;
|
||||
|
||||
private float _mouseOrbitAngle;
|
||||
|
||||
public override void OnStartClient()
|
||||
{
|
||||
base.OnStartClient();
|
||||
|
||||
if(!IsOwner)
|
||||
return;
|
||||
|
||||
Camera cam = GetComponent<Camera>();
|
||||
cam.enabled = true;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if(!IsOwner || _target == null)
|
||||
return;
|
||||
|
||||
if (Input.GetMouseButton(1))
|
||||
_mouseOrbitAngle += Input.GetAxis("Mouse X") * _mouseOrbitSensitivity * Time.deltaTime;
|
||||
|
||||
var orbitRotation = Quaternion.Euler(0f, _orbitAngle + _mouseOrbitAngle, 0f);
|
||||
|
||||
transform.position = _target.position + orbitRotation * _offset;
|
||||
transform.rotation = orbitRotation * Quaternion.Euler(_rotation);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user