FC2ブログ
02 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 04

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【Unity】Spriteを白くフラッシュさせてみた 

こんばんは~。
大坂です。

ネタがなさ過ぎてこんな時間になってしましました・・・orz

Sprite画像とか設定すると、もともとのColorが白(255,255,255,255)で指定されているため、
白く光らせるのにちょっと困ってしまったので、ネタに。

今回はシェーダーをカスタマイズして対応しました。

ここからbuilt-in shadersをダウンロード。

解凍したファイルの「\builtin_shaders-4.3.4\DefaultResources\Sprites-Default.shader」を開く。
(4.3.4のをダウンロードしてみましたのでダウンロードするバージョンによってパスは変わると思います。)

1行目を

Shader "Sprites/Default" から Shader "Sprites/Custom"


などに変更
次に66行目にある fixed4 frag(v2f IN) : COLOR を

fixed4 frag(v2f IN) : COLOR
{
return tex2D(_MainTex, IN.texcoord) * IN.color;
}

から

fixed4 frag(v2f IN) : COLOR
{
fixed4 emi = tex2D (_MainTex, IN.texcoord) * _Color;
emi *= IN.color;
emi.rgb = emi.rgb*2+max(fixed3(0,0,0),IN.color.rgb-0.5)*2;
return emi;
}


と変更します。

ファイルを別名(Sprites-custom.shaderなど)に変更して保存し、
UnityにShaderのようなフォルダを作ってそこに入れておきます。

あとはこのシェーダーをSpriteに設定し、
Spriteの色を変更すると黒~テクチャの色~白と色の変更ができるようになります。
色の指定 )
 黒(0,0,0,255)
 テクスチャの色(127,127,127,255)
 白(255,255,255,255)

ここまでできてしまえばあとはプログラムでiTweenのValueToなどで色の変更を指定すれば白く光ったような感じにできますね!

一応その部分のコードも。



using UnityEngine;
using System.Collections;

public class FlashSpriteController : MonoBehaviour {

SpriteRenderer spriteRenderer;

public void FlashSprite(bool critical) {
spriteRenderer = GameObject.Find({オブジェクト名}).GetComponent();
iTween.ValueTo(gameObject,
iTween.Hash("from",1f,"to",0.5f,"time",0.5f,"easetype",iTween.EaseType.easeInBounce,
"onupdate","Flush","oncomplete","EndFlush"));
}

void Flush(float value){
spriteRenderer.color = new Color(value,value,value,1);
}

void EndFlush(){
spriteRenderer.color = new Color(0.5f,0.5f,0.5f,1);
}
}


これだけですね!簡単です!

ではではまた来週!ノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 3