飛行機と地面までの距離チェック

高さを出すだけであればy値だけでよいが,実際には地面との高さを測らなくてはならない.でないと,山にめり込んだまま飛行したり墜落しないこともできる.

そこで自分直下の地形の高さを計測し,自分の高さとの差分を出すスクリプトです

※このスクリプトはコアの部分一部です(なぜJSでかいてるんだ,,,)

function altCheck(){ //この関数はupdateで常に呼び出していた
vSliderValue=Mathf.Round(this.transform.position.y / 0.3048);//フィート変換用

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);//地形の表面の高さを出してたような
//var height : float = Terrain.activeTerrain.terrainData.GetInterpolatedHeight(0.5, 0.5);

var jimen : float = Alt - height;//自機の高さと地形の表面の高さを出して差分をもとめる

if(jimen < 100){ //地形まで100ft以下なら
GetComponent.<AudioSource>().volume = 0.8f;//常時再生している警告音の音量を上げる
warningGameobject.SetActive(true);//警告表示のグラフィック(この当時はテクスチャ貼ったゲームオブジェクト)を可視化する
}else{
GetComponent.<AudioSource>().volume = 0.0f;//常時再生している警告音の音量を下げる
warningGameobject.SetActive(false);//警告表示のグラフィック不可視にする
}


}