開発メモ 「一定時間で敵がプレイヤーに弾を発射」
「Unity 敵 攻撃 シューティング」
で、検索して、このブログを見てくれた人がいるので、
方法を載せときます。
***************************************************************************
#pragma strict
//敵の弾を発射させるためのスクリプト
//MainCameraがプレイヤーとする.
//プレイヤーの方向に向く,敵の攻撃頻度の計算(Update)
//攻撃頻度に合わせて弾の発射(Shoot)
//プレイヤーに衝突すると,ダメージと弾の消去(OnCollisionEnter)
var LookAtTarget : Transform;//プレイヤーを設定
var damp = 6.0;
var bullitPrefab : Transform;//弾のプレファブを設定
var savedTime = 0;//弾の発射頻度
function Update(){
if(LookAtTarget){
var rotate = Quaternion.LookRotation(LookAtTarget.position - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, rotate, Time.deltaTime * damp);
var seconds : int = Time.time;
var oddeven = (seconds % 2);
if(oddeven){
Shoot(seconds);
}
}
transform.LookAt(LookAtTarget);
}
function Shoot(seconds){
if(seconds != savedTime){
var bullit = Instantiate(bullitPrefab, transform.Find("spawnPoint").transform.position,
Quaternion.identity);
//bullit.gameObject.tag = "enemyProjectile";
bullit.rigidbody.AddForce(transform.forward * 1000);
savedTime=seconds;
}
}
function OnCollisionEnter(other : Collision){
//var player : GameObject = GameObject.FindWithTag("MainCamera");
if(other.gameObject.tag == "MainCamera"){
//player.SendMessage("ApplyDamage",1);
yield WaitForSeconds(0.3);
Destroy(gameObject);
}
}
***************************************************************************
「var savedTime = 0;」
が、弾の発射頻度なので、設定数値を変えて使用して下さい。
終わり。