AI プレイヤーが近い時だけ敵AIを動かす

f:id:peroon:20110630142302j:image

赤い球に入った敵AIだけを有効にする工夫。

カメラに見えないオブジェクトをunableにするOnBecameVisibleもあるけれど、
http://www.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/ScriptReference/index.Performance_Optimization.html
背後からも敵には撃ってきてほしいので、
「プレイヤーを包む球の中に敵がいたらAIが起動する」のが良い。
今回は、プレイヤーの球の中に敵がいると、ランダムウォーク(恐れて震える)する。

PlayerにはenemyWakeUpSphereという赤い半透明の球を付けていて、
その球と敵とがヒットしたことをTriggerで取得している。

赤い球はTrigger Volumeと言うようです。
//敵にセットするスクリプト
var isEnable = true; //Player is near

var randomWalkIntensity = 0.01;

function Update () {
	if(isEnable==true){
		randomWalk();
	}
}

function randomWalk(){
	var r = randomWalkIntensity;
	var rX = Random.Range(-r,r);
	var rY = Random.Range(-r,r);
	var rZ = Random.Range(-r,r);
	transform.Translate(rX, rY, rZ);
}

//Shaking when Player is near
function OnTriggerEnter( c : Collider ){
	if(c.name=='enemyWakeUpSphere'){
		isEnable = true;
	}
}
function OnTriggerExit( c : Collider ){
	if(c.name=='enemyWakeUpSphere'){
		isEnable = false;
	}
}