前提・実現したいこと
Unityで次へ進むためのボタンがUIでゲームクリアが表示されたら表れるようにしたいです
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
特にエラーは出ていません
エラーメッセージ
該当のソースコード
ソースコード
public GameObject button;
void Start()
{
//hitPoint = hitPointMax;
button.SetActive(false);
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (hitPoint <= 0) { button.SetActive(true); } }
<追記>
解答ありがとうございます。まさかこんなに来て下さるとは!
そうですね、、わがままでした。追記しておきましたのでどうか・・。
ただデバックで
24
UnityEngine.Debug:Log(Object)
EnemyAP:OnTriggerEnter2D(Collider2D) (at Assets/Scripts/EnemyAP.cs:40)
と出ておりましたのでHPは減っていると思います。
すいません、赤のエラーではなくて黄色のエラーみたいなのはありました。
Assets\Scripts\EnemyAP.cs(12,9): warning CS0414: The field 'EnemyAP.damage' is assigned but its value is never used
12・9行目というのはint damage = -1;
とpublic int hitPoint = 45;でした。
重ね重ねよろしくお願いします。
public class EnemyAP : MonoBehaviour
{
public int hitPoint = 45;
public int hitPointMax = 45;
int damage = -1; public Text Scoretext; public Text Gamecleartext;
// Update is called once per frame
void Update()
{
Scoretext.text = hitPoint.ToString();
if(hitPoint <= 0) { button.SetActive(true); }
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.tag == "Buster")
{
hitPoint -= 1;
Debug.Log(hitPoint);
hitPoint = Mathf.Clamp(hitPoint, 0, hitPointMax);
}
if (hitPoint <= 0) { Destroy(gameObject); //Instantiate(m_explosionPrefab, collision.transform.localPosition, Quaternion.identity); //GameObject.Find("Canvass").GetComponent<ScoreController>().GameOver(); button.SetActive(true); } } }
試したこと
ここに問題に対して試したことを記載してください。
コードはパクられることを考慮し要点だけ載せています。
状況としては敵オブジェクトのスクリプトにHPを設定し、HPが基準値より下回ればDestroyされます。
HPはUIでも表示させており、このAPのスクリプトからUIの数字表記が減算される処理を引っ張って使っています。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
Unity初心者ですので本当に初歩のことかもしれません。
public GameObject button;でボタンというオブジェクトはアタッチ出来ないのでしょうか?
インスペクターからボタンオブジェクトはアタッチ出来ましたし、ゲームが始まるとボタンが非表示になっているのであとは表示させることだけなのですが、良ければご教授願いたく、はじめてここを利用させていただきました。
回答2件
あなたの回答
tips
プレビュー