ダメージ処理スクリプトと、当たり判定を設定する
当たり判定とダメージ処理について書いていきます。
間違いやわかりにくいところがありましたらコメントしていただければと思います。
Inspectorの下にあるAdd Componentを押しPhysicsからColliderとRigidbodyを追加し当たり判定を作成
(2dの場合はPhysics 2dからCollider 2dとRigidbody 2dを選択)
次はPlayerのスクリプトにHPと衝突判定を書いていきます。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { //[SerializeField]を書くことによりpublicでなくてもInspectorから値を編集できます [SerializeField] private float hp = 5; //体力 //貫通する場合はTrigger系(どちらかにColliderのis triggerをチェック) 衝突しあうものはCollision系(ColliderとRigidbodyが必要) private void OnTriggerEnter2D(Collider2D collision) { //タグがEnemyBulletのオブジェクトが当たった時に{}内の処理が行われる if (collision.gameObject.tag == "EnemyBullet") { Debug.Log("hit Player"); //コンソールにhit Playerが表示 //gameObject.GetComponent<EnemyBulletManager>()でEnemyBulletManagerスクリプトを参照し //.powerEnemy; でEnemyBulletManagerのpowerEnemyの値をゲット hp -= collision.gameObject.GetComponent<EnemyBulletManager>().powerEnemy; } //体力が0以下になった時{}内の処理が行われる if (hp <= 0) { Destroy(gameObject); //ゲームオブジェクトが破壊される } } }
次は敵の攻撃力を設定します
public class EnemyBulletManager : MonoBehaviour { public float powerEnemy = 1; //攻撃力 }
他にも色々な書き方がありますが一つ例として参考にして下さい。
レイアウトなども改善していきたいです。