赞
踩
震动这个特效我想写很久很久了 但是因为各方面的原因
之前我实现震动 是用了Dotween中的方法实现的
最终我还是参考了大佬的博文写出来简单的demo
然后就是代码了
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Shake : MonoBehaviour { // 震动的标志位 public bool isshakeCamera = false; // 震动的幅度 public float shakeLevel = 3f; // 震动的时间 public float setShakeTime = 0.2f; // 震动的FPS(帧率) public float shakeFps = 45f; private float fps; private float shakeTime = 0.0f; private float frameTime = 0.0f; private float shakeDelta = 0.005f; private Camera selfCamera; public ParticleSystem explodeobject; void Awake() { explodeobject.Pause(); selfCamera = GetComponent<Camera>(); } // Use this for initialization void Start() { shakeTime = setShakeTime; fps = shakeFps; frameTime = 0.03f; shakeDelta = 0.005f; } // Update is called once per frame void Update() { if (isshakeCamera) { explodeobject.Play(); if (shakeTime > 0) { shakeTime -= Time.deltaTime; if (shakeTime <= 0) { //返回没有触发的状态 selfCamera.rect = new Rect(0.0f, 0.0f, 1.0f, 1.0f); isshakeCamera = false; shakeTime = setShakeTime; fps = shakeFps; frameTime = 0.03f; shakeDelta = 0.005f; } else { frameTime += Time.deltaTime; if (frameTime > 1.0 / fps) { frameTime = 0; selfCamera.rect = new Rect(shakeDelta * (-1.0f + shakeLevel * Random.value), shakeDelta * (-1.0f + shakeLevel * Random.value), 1.0f, 1.0f); } } } } } public void shake() { isshakeCamera = true; } }
我们通过方法可以很容易的调用 从而实现震动效果
希望这篇博文可以帮助到大家 如果有问题可以联系我
主页有我的联系方式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。