写一个相机抖动的功能,可以用来攻击后相机抖动的效果
直接上脚本吧,写的很清楚了
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
//该脚本需要被挂到相机上
private Vector3 DefaultPos;//用来记录相机开始的位置
[Range(0f,2f)]
public float Magnitude = 0.4f;//相机抖动的范围
public float ShakeTime = 0f;//抖动延迟时间
//被攻击 或者需要相机抖动时调用该方法
public void Shake()
{
StartCoroutine (_Shake ());
}
IEnumerator _Shake()
{
for (int i = 0; i <= 360; i += 60)
{
//改变相机的y轴的值 以一个正玄值的变化 变化之后相机位置恢复到原来的位置
transform.position =
new Vector3(this.DefaultPos.x, this.DefaultPos.y + Magnitude * Mathf.Sin(i * Mathf.Deg2Rad), this.DefaultPos.z);
//Debug.Log(transform.position.y);//测试变化之后相机位置的位置
yield return new WaitForSeconds(ShakeTime);
}
}
void Start ()
{
this.DefaultPos = transform.position;
}
}
本文介绍了一个Unity中实现相机抖动效果的脚本。通过调整幅度和延迟时间参数,可以使场景中的相机产生自然的抖动效果,适用于游戏中的攻击或其他触发事件。
1898

被折叠的 条评论
为什么被折叠?



