Files
Continentis/Assets/TemporaryResources/Cartoon Coffee/Demo/Scripts/Head.cs
SoulliesOfficial d09b58fd80 架构大更
2026-03-20 11:56:50 -04:00

60 lines
1.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using static Demo_Project.SceneManager;
namespace Demo_Project
{
public class Head : MonoBehaviour
{
float minimumAngle = 0;
float maximumAngle = 0;
public float dividerRate = 3;
// Start is called before the first frame update
void Start()
{
SceneManager.listOfHeads.Add(this.gameObject);
}
// Moves the head based on the angle of the mouse
public void MoveHead()
{
Quaternion rot = new Quaternion();
float shootAngle = GetAngle() * Mathf.Rad2Deg;
if (shootAngle > maximumAngle)
{
shootAngle = maximumAngle;
}
if (shootAngle < minimumAngle)
{
shootAngle = minimumAngle;
}
shootAngle = shootAngle / dividerRate;
rot.eulerAngles = new Vector3(0, 0, shootAngle);
transform.rotation = rot;
}
// Gets the angles in radians
public float GetAngle()
{
Vector3 trueMousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
return Mathf.Atan2(trueMousePosition.y - transform.position.y, trueMousePosition.x - transform.position.x);
}
// Sets the angles based off what was received from the arm
public void SetAngles(float min, float max)
{
minimumAngle = min;
maximumAngle = max;
}
// Update is called once per frame
void Update()
{
MoveHead();
}
}
}