U3D震屏效果源碼

項目中用的,其實就是不斷的做判斷。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 震動屏幕
/// </summary>
public class GameShake : MonoBehaviour {

    //振幅(震動大小),頻率(震動速度),次數(震動次數),方向(上下),增幅(每次震動時長+-)
    float swing; float hz; int num; bool isUp; float rate;

    int startNum = 0;
    enum state { start,just,lose,end};//震動狀態
    state myState = state.start;
    bool isEnd = false;

    public void Born(float _swing, float _hz, int _num, bool _isUp, float _rate)
    {
        swing = _swing; hz = _hz;num = _num;isUp = _isUp;rate = _rate;
    }

	// Update is called once per frame
	void Update () {
        if (isEnd) return;
        Shake();
	}

    void Shake()
    {
        if (!isUp)
        {
            switch (myState)
            {
                case state.start: if (Move(true) >= swing) myState = state.just; break;
                case state.just: if (Move(false) <= -swing) myState = state.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章