2017-10-27 9 views
1

ゲームでスーパールイージギャラクシーは、プレーヤーが冷たい水に落ちると、画面の波。 Unityでこの効果を出す方法はありますか?Unity3Dで波打った効果を作り出す方法

効果は次のようになります。https://youtu.be/uj3TWvUlLqs?t=4m19s

https://i.imgur.com/1oR9ZFk.png

私はこの効果の名前がわからない、細部の私の不足のため申し訳ありません。

+0

後処理シェーダにおける波長。 – Draco18s

+0

はい、@ Draco18sによると、あなたはアセットストアでもっと見つけることができます。 [Here](https://www.assetstore.unity3d.com/en/#!/content/83912)は、Unityの無料のものです。それはぼやけ、暗闇、色補正などのような効果はほとんどありません。 – Thalthanas

+0

@EmreE私は後処理スタックをインストールしましたが、効果のどれも私が望むものではありません。 –

答えて

1

申し訳ありません。

1)は、新しいシェーダ、材料、およびC#のスクリプト

2)のスクリプトを追加します。
シェーダ(下に追加して、色の反転を削除):

 uniform float _waveLength; 
     uniform float _waveNumber; 

     fixed4 frag (v2f IN) : SV_Target 
     { 
      fixed4 col = tex2D(_MainTex, IN.uv + float2(sin(IN.vertex.y/_waveLength + _Time[1]*50)/_waveNumber, 0)); 

      return col; 
     } 

C#:

using UnityEngine; 

public class testscript : MonoBehaviour { 

    public Material mat; 

    public float waveNumber; 
    public float waveLength; 

    void Update() 
    { 
     Shader.SetGlobalFloat("_waveLength", waveNumber); // I know I switched the variables on accident. It still works though. 
     Shader.SetGlobalFloat("_waveNumber", waveLength); 
    } 

    void OnRenderImage(RenderTexture src, RenderTexture dest) 
    { 
     Graphics.Blit(src, dest, mat); 
    } 
} 

3)材料にシェーダを取り付け、カメラにC#のスクリプトを取り付け、そしてC#スクリプトに資料を添付します。キューブをシーンに追加して、エフェクトを表示します。 Unityの再生モードに進み、スクリプトの設定を調整します。

4)変数には何がありますか?

a)のウェーブ番号: 波の量、 1波の多く 30 =非常に少数の波

b)の波の長さを=: どこまで波のXを相殺するために、 1 =非常に広い波 千=非常に短い波

Iは1で波数をお勧めし、そして100

関連する問題