シヴァのブログ

UnityやUE4や趣味とかいろいろ...

開発メモ 「画像点滅,距離(magnitude)」

今回できたこと。

「プレイヤーと敵の距離が30m以内だと画像を点滅させる。」

[結果]

  • プレイヤーと敵の距離が30mより遠い

f:id:shivaT:20130618013139p:plain

  • プレイヤーと敵の距離が30m以内

f:id:shivaT:20130618013156p:plain

 

 

 

[JavaScript]

①Area_Warning.js

***************************************************************************

#pragma strict
var player : GameObject;


function Awake(){
    player = GameObject.FindWithTag("MainCamera");
}
function Update(){
    if((transform.position - player.transform.position).magnitude < 30.0){
        GUI_Warning.key = true;GUI_Warning.jsのkeyの値をtrueにする(staticだから変化する)
    }else{
        GUI_Warning.key = false;
    }
}

***************************************************************************

 

GUI_Warning.js

***************************************************************************

#pragma strict
var texture : Texture2D;//点滅させたい画像
var texture2 : Texture2D;//背景が透明で何も描かれていない画像
private var interval : float = 0.2;//画像の変化するスピード(小:速)
private var SumTime : float = 0.0;
private var showGUI : boolean = false;
static var key : boolean = false;//Area_Warning.jsで変化

function Update(){
    SumTime += Time.deltaTime;
    if(SumTime > interval && key == true){
        showGUI = !showGUI;
        SumTime = 0.0;
    }
    if(key == false){
        showGUI = false;
    }
    switch(showGUI){
        case true:
            guiTexture.texture = texture;
        break;
        case false:
            guiTexture.texture = texture2;
        break;
    }
}

***************************************************************************

[やり方]

簡単にいうと、

①のArea_Warning.jsは、敵のオブジェクトに加える。

②のGUI_Warning.jsは、GameObject > Create Other > GUI Texture でオブジェクトを作って、その中に加える。

 

 

うん。

これで、ガンダムのゲーム(エクバ)っぽく、

画像が点滅して、プレイヤーに危機を知らせることができる。

 

...END。