当前位置:   article > 正文

Unity摄像机抖动效果_unity镜头抖动效果

unity镜头抖动效果
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class CameraShake : MonoBehaviour
  5. {
  6. private Transform ThisTrasform = null;
  7. //总共抖动时间
  8. public float ShakeTime = 2.0f;
  9. //在任何方向上偏移的距离
  10. public float ShakeAmount = 4.0f;
  11. //相机移动到震动点的速度
  12. public float ShakeSpeed = 3.0f;
  13. public void StartShake()
  14. {
  15. ThisTrasform = GetComponent<Transform>();
  16. //开始震动
  17. StartCoroutine(Shake());
  18. }
  19. public IEnumerator Shake()
  20. {
  21. //存下当前相机位置
  22. Vector3 OrigPosition = ThisTrasform.localPosition;
  23. //记下运行时间
  24. float ElapsedTime = 0.0f;
  25. //重复此步骤以获得总震动时间
  26. while (ElapsedTime < ShakeTime)
  27. {
  28. //在单位球上随机取点
  29. Vector3 RandomPoint = OrigPosition + Random.insideUnitSphere * ShakeAmount;
  30. //更新相机位置
  31. ThisTrasform.localPosition = Vector3.Lerp(ThisTrasform.localPosition, RandomPoint, Time.deltaTime * ShakeSpeed);
  32. yield return null;
  33. //更新时间
  34. ElapsedTime += Time.deltaTime;
  35. }
  36. //恢复相机位置
  37. ThisTrasform.localPosition = OrigPosition;
  38. }
  39. }

该代码挂在摄像机即可

选自《Unity脚本设计》

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/125352
推荐阅读
相关标签
  

闽ICP备14008679号