44 lines
1.1 KiB
C#
Raw Normal View History

2024-02-19 21:00:36 +03:00
using UnityEngine;
using System.Collections;
public class Orbital : MonoBehaviour
{
public Transform target;
Vector3 lastPosition;
Vector3 direction;
float distance;
Vector3 movement;
Vector3 rotation;
void Awake ()
{
direction = new Vector3(0, 0, (target.position - transform.position).magnitude);
transform.SetParent(target);
lastPosition = Input.mousePosition;
}
void Update ()
{
Vector3 mouseDelta = Input.mousePosition - lastPosition;
if (Input.GetMouseButton(0))
movement += new Vector3(mouseDelta.x * 0.1f, mouseDelta.y * 0.05f, 0F);
movement.z += Input.GetAxis("Mouse ScrollWheel") * -2.5F;
rotation += movement;
rotation.x = rotation.x % 360.0f;
rotation.y = Mathf.Clamp(rotation.y, -80F, -10F);
//direction.z = Mathf.Clamp(direction.z - movement.z * 50F, 15F, 180F);
direction.z = Mathf.Clamp(movement.z + direction.z, 15F, 100F);
transform.position = target.position + Quaternion.Euler(180F - rotation.y, rotation.x, 0) * direction;
transform.LookAt(target.position);
lastPosition = Input.mousePosition;
movement *= 0.9F;
}
}