在 Unity 中实现物体震动效果,其原理主要是通过在一定时间内不断改变物体的位置、旋转或缩放等属性,模拟出震动的视觉效果。以下从不同维度详细介绍常见的物体震动实现原理及示例:
位置震动
原理
通过在物体原本的位置基础上,随机生成微小的偏移量,并将这些偏移量累加到物体的位置上,使得物体在短时间内不断改变位置,从而产生震动的视觉效果。通常会结合时间控制,在一定的持续时间内进行这种随机偏移操作。
下面就是代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShaiFenJi : MonoBehaviour {
public GameObject wuTi;//物体
private C_Model model;
Vector3 first_pos;
private float swing = 0.02f;//震动幅度
// Use this for initialization
void Start () {
model = this.GetComponent<C_Model>();
first_pos = wuTi.transform.localPosition;
}
// Update is called once per frame
void Update () {
if (model.Info ==1)
{
Vector3 pos = first_pos + Random.insideUnitSphere * swing;
pos.y = wuTi.transform.localPosition.y;
wuTi.transform.localPosition = pos;
}
}
}
最后测试一下就可以了