MiniGames/Assets/MudBun/Examples/Common/CameraOscillate.cs

45 lines
1.1 KiB
C#
Raw Normal View History

2025-07-11 15:42:48 +05:00
/******************************************************************************/
/*
Project - MudBun
Publisher - Long Bunny Labs
http://LongBunnyLabs.com
Author - Ming-Lun "Allen" Chou
http://AllenChou.net
*/
/******************************************************************************/
using UnityEngine;
namespace MudBun
{
public class CameraOscillate : MonoBehaviour
{
public float Omega = 1.0f;
public float Range = 1.0f;
private float m_xzDist = 0;
private float m_initTheta = 0.0f;
private void Start()
{
Vector3 posXz = transform.position;
posXz.y = 0.0f;
m_xzDist = posXz.magnitude;
m_initTheta = Mathf.Atan2(posXz.z, posXz.x);
}
private void Update()
{
float theta = m_initTheta + Range * Mathf.Sin(Time.time * Omega);
Vector3 pos = transform.position;
pos.x = m_xzDist * Mathf.Cos(theta);
pos.z = m_xzDist * Mathf.Sin(theta);
transform.position = pos;
transform.rotation = Quaternion.LookRotation(-transform.position);
}
}
}