zoukankan      html  css  js  c++  java
  • Unity3D相机震动效果

    在一些格斗、射击以及动作类游戏中

    相机震动效果是十分重要的

    一个平凡的镜头

    在关键时刻加入相机震动后

    便可以展现出碰撞、危险、打斗以及激动人心的效果

    相机震动的实现方式有很多

    但都会涉及摄像机位置的变化

    using System.Collections;
    using UnityEngine;
    
    public class CameraShake : MonoBehaviour {
        private Transform ThisTransform = null;
        public float ShakeTime = 2.0f;
        public float ShakeAmount = 3.0f;
        public float ShakeSpeed = 2.0f;
        // Use this for initialization
        void Start () {
            ThisTransform = GetComponent<Transform>();
        }
    
        public IEnumerator Shake() {
            Vector3 OrigPosition = ThisTransform.localPosition;
            float ElapsedTime = 0.0f;
            while (ElapsedTime < ShakeTime) {
                Vector3 RandomPoint = OrigPosition + Random.insideUnitSphere * ShakeAmount;
                ThisTransform.localPosition = Vector3.Lerp(ThisTransform.localPosition,RandomPoint,Time.deltaTime*ShakeSpeed);
                yield return null;
                ElapsedTime += Time.deltaTime;
            }
            ThisTransform.localPosition = OrigPosition;
        }
    }

    使用时

    将此脚本挂到相机上

    然后在需要的时候开启协程即可

    StartCoroutine(Shake());
  • 相关阅读:
    loj6033.「雅礼集训 2017 Day2」棋盘游戏
    loj6032. 「雅礼集训 2017 Day2」水箱
    BZOJ 5217 [Lydsy2017省队十连测] 航海舰队
    P4173 残缺的字符串
    P3723 [AH2017/HNOI2017]礼物
    P3321 [SDOI2015]序列统计
    P4841 [集训队作业2013]城市规划
    MySQL基础
    MySQL查询
    HTTP响应码
  • 原文地址:https://www.cnblogs.com/fws94/p/7510032.html
Copyright © 2011-2022 走看看