前提・実現したいこと
敵キャラへ操作キャラの弾が当たった際に弾が消え、当たった敵キャラのHPが減るようにしたい。またキャラクターから弾が発生するため物理的な接触はないようにしたい。
発生している問題・エラーメッセージ
発射された弾が敵に接触してもそのまま消えずにすり抜ける。またHPも減っていない。
該当のソースコード
弾のスクリプト
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class BulletScript : MonoBehaviour 6{ 7 public float speed = 10f; 8 // Start is called before the first frame update 9 void Start() 10 { 11 12 } 13 14 // Update is called once per frame 15 void Update() 16 { 17 transform.position += transform.right * speed * Time.deltaTime; 18 } 19 20 void OnTrigerEnter2D(Collider2D other) 21 { 22 if(other.gameObject.tag == "enemy") 23 { 24 Destroy(gameObject); 25 } 26 } 27} 28
敵のHPのスクリプト
using System.Collections; using System.Collections.Generic; using UnityEngine; public class HPmanager : MonoBehaviour { [Header("HP")] public float HP; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } void OnTrigerEnter2D(Collider2D other) { if (other.gameObject.tag == "bullet") { if (HP > 0) { HP -= 1; } else { Destroy(gameObject); } } } }
弾のisTriggerはチェックあり、敵のisTriggerはチェックなしでRigidbodyはどちらにもつけてありSimulatedはチェックあり。
試したこと
http://kimama-up.net/unity-trigger/を参考にしていろいろ試してみたが結果は変わらなかった。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/24 03:01