今回のワークショップで作ったスクリプトメモ その1
#pragma strict var Alt:int;//staticにしたほうが良いかな? var customSkin : GUISkin;//スキンの設定なので無くて良い(なんであるの?) var vSliderValue : float = 0.0;//高度計を画面右隅に var AudioClip01: AudioClip;//低高度警告音をここにアサイン var myTexture : Texture2D;//なんだっけ? var warningGameobject : GameObject;//高さによって警告表示するそのゲームオブジェクトをここでアサイン var myBool : boolean;//墜落したときのスイッチ用 function Start () { audio.loop = true;//音はループ再生ね audio.clip = AudioClip01;//音はこれね audio.volume = 0.0f;//とりあえず音量ゼロね audio.Play();//ほんで再生しちゃえ! myBool = true;//墜落スイッチはtrueで } function OnGUI(){//高さのスライドバーと高さの数値表示関係 GUI.skin = customSkin; GUI.Label(Rect(Screen.width-20, Screen.height-40, 40, 50), "ft"); GUI.Label(Rect(Screen.width-80, Screen.height-40, 100, 50), vSliderValue.ToString()); vSliderValue = GUI.VerticalSlider (Rect (Screen.width-60, 20, 100, Screen.height-80), vSliderValue, 6000, 0.0); //GUI.DrawTexture(Rect(Screen.width/2-256,Screen.height/2-64,512,128), myTexture); } function Update () { Alt=this.transform.position.y;//Y軸の絶対値を入れます if(myBool==false){//myBoolがfalseなら fallOff();//fallOffのファンクションをやって }else{//ちゃうなら altCheck();//高さチェックね } } function altCheck(){ vSliderValue=Mathf.Round(this.transform.position.y / 0.3048);//Yの高さ(m)をフィートに直します var posx = transform.position.x; var posz = transform.position.z; var height : float = Terrain.activeTerrain.terrainData.GetInterpolatedHeight(posx / Terrain.activeTerrain.terrainData.size.x, posz / Terrain.activeTerrain.terrainData.size.z);//このスクリプトがついているx,y座標のterrain=地形の表面からの高さ=を計測してheightに入れて var jimen : float = Alt - height;//現在高度ー地面の高さで実際の地形との高さを出してjimenに入れちゃう if(jimen < 100){//実際の高さが100以下なら audio.volume = 0.8f;//警告音のボリュームを上げる(つまり警告音はずっと再生されていた!) warningGameobject.SetActive(true);//warnignGameobjectにアサインしているゲームオブジェクトを表示させる }else{ audio.volume = 0.0f;//高度を上げたら warningGameobject.SetActive(false);//警告を非表示に } } function fallOff(){//墜落時の挙動はここに myBool = false;//myBookはfalseに audio.volume = 0.0f;//警告音も消す(死んでるから) warningGameobject.SetActive(false);//警告表示も消す(死んでるから) }