ここから本文です

現在、Unityでゲームを作成しています。今は自分が打った弾が一発敵に当たると敵が...

oda********さん

2013/10/2417:50:20

現在、Unityでゲームを作成しています。今は自分が打った弾が一発敵に当たると敵が爆発する、というところまでいったのですが、一発当たるだけで敵が死ぬのでは物足りないので、5発当たったら死ぬようにしたいです

また、敵の弾丸が自分にあたったらHPが減るように、弾にプレイヤーの体力値(ThirdPersonStatus)のスクリプトから呼び出して体力を削る、というスクリプトはどう書けばよろしいのでしょうか。

急を要するので皆さんお願いします!!

・自分の弾が敵に当たると敵死亡⇒数発あたってからApplyDamege(爆発エフェクト)を呼び出したい
function OnCollisionEnter(collisionInfo: Collision){
if(collisionInfo.gameObject.tag == 'enemy'){
collisionInfo.gameObject.SendMessage('ApplyDamage', SendMessageOptions.DontRequireReceiver);
}
Destroy(gameObject);
}

・ApplyDamege
var ExplotionPrefab: GameObject;

function ApplyDamage(){
Instantiate(ExplotionPrefab, transform.position, transform.rotation);
Destroy(gameObject);
}

・敵の弾が当たるとThirdPersonStatusスクリプトから自分の体力値(lives)を呼び出して体力を削るスクリプト
//敵弾によるダメージ量
public float damage = 1.0f;
//敵弾が当たった時の効果
public GameObject hitEffect;

//最後にあたった時間を保持
private float lastHitTime = 0.0f;

//当たった時の処理をする関数
void OnCollisionEnter (Collision c)
{
//最後にあたった時間から2秒以上経過していることをチェック(連続で当たることを防止)
if (Time.time > lastHitTime + 2) {

//当たったのがプレイヤーから敵キャラクターだったら処理
if (c.gameObject.tag == "Player" || c.gameObject.tag == "Enemy") {

//敵弾が当たったときのエフェクトを生成する
if (hitEffect != null) {
Instantiate (hitEffect, c.transform.position, Quaternion.identity);
}

//敵弾がプレイヤーに当たったときの効果音を再生する
if (audio != null) {
audio.Play ();
}

//敵弾のあたった角度に応じて、跳ね飛ばす方向を決定する
Vector3 slamDirection = transform.InverseTransformDirection (c.transform.position - transform.position);
slamDirection.y = 0;
slamDirection.z = 1;
if (slamDirection.x >= 0) {
slamDirection.x = 1;
} else {
slamDirection.x = -1;
}

~省略(プレイヤーに跳ね飛ばすメッセージとダメージを与えるメッセージ)~

//当たった時間を保持
lastHitTime = Time.time;
}

閲覧数:
2,142
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

mat********さん

2013/10/2907:20:16

敵に新しくスクリプトを加えます。

var enemyHP = 5;

function OnCollisionEnter(collisionInfo: Collision){
if(collisionInfo.gameObject.tag == 'bullet'){
//もしbulletというタグを持ったオブジェクトに当たったら
enemyHP -=1;
//敵の体力を-1
}
}

function Update (){
if(enemyHP <= 0){

Destroy(gameObject)
}
}

これ全部を敵のオブジェクトにつけて下さい。
http://d.hatena.ne.jp/raharu0425/20130122#1358850905
後はここを参考にして敵の体力が0になったらそこからそこに爆発をインスタンスすればできると思います。

質問した人からのコメント

2013/10/30 16:22:21

成功 ありがとうございます!!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる