敵に得点を付けて画面にスコア表示
![A641e3ed a679 4c8f b51c a33d70ab2697](https://codegenius.org/uploads/slide/image/2166/a641e3ed-a679-4c8f-b51c-a33d70ab2697.jpeg)
![54ab36fb a33f 40f0 8dac e8e81bb824b6](https://codegenius.org/uploads/slide/image/2167/54ab36fb-a33f-40f0-8dac-e8e81bb824b6.jpeg)
![85697343 a1ef 46ed 8b84 34c27b42646d](https://codegenius.org/uploads/slide/image/2168/85697343-a1ef-46ed-8b84-34c27b42646d.jpeg)
スコアを増加させるメソッド
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// UIを使う場合には忘れずに追加すること!
using UnityEngine.UI;
public class ScoreManager : MonoBehaviour
{
private int score = 0;
private Text scoreLabel;
void Start()
{
scoreLabel = GameObject.Find("ScoreLabel").GetComponent<Text>();
scoreLabel.text = "SCORE:" + score;
}
// スコアを増加させるメソッド
// 外部からアクセスするためpublicで定義する
public void AddScore(int amount)
{
score += amount;
scoreLabel.text = "SCORE:" + score;
}
}
![B072da2d cc0b 4eb6 b0da f94c938541c6](https://codegenius.org/uploads/slide/image/2169/b072da2d-cc0b-4eb6-b0da-f94c938541c6.jpeg)
![99c2ad09 862c 4ce8 9bac 3dacbe769d82](https://codegenius.org/uploads/slide/image/2170/99c2ad09-862c-4ce8-9bac-3dacbe769d82.jpeg)
![7a3d545a 6e9f 4d31 8806 6626505ec2e0](https://codegenius.org/uploads/slide/image/2171/7a3d545a-6e9f-4d31-8806-6626505ec2e0.jpeg)
敵を倒すと点数が入る
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DestroyObject : MonoBehaviour
{
public GameObject effectPrefab;
public GameObject effectPrefab2;
public int objectHP;
public GameObject[] itemPrefabs;
// ★追加
public int scoreValue; // これが敵を倒すと得られる点数になる
private ScoreManager sm;
// ★追加
void Start()
{
// 「ScoreManagerオブジェクト」に付いている「ScoreManagerスクリプト」の情報を取得して「sm」の箱に入れる。
sm = GameObject.Find("ScoreManager").GetComponent<ScoreManager>();
}
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Shell"))
{
objectHP -= 1;
if (objectHP > 0)
{
Destroy(other.gameObject);
GameObject effect = Instantiate(effectPrefab, transform.position, Quaternion.identity);
Destroy(effect, 2.0f);
}
else
{
Destroy(other.gameObject);
GameObject effect2 = Instantiate(effectPrefab2, transform.position, Quaternion.identity);
Destroy(effect2, 2.0f);
Destroy(this.gameObject);
GameObject dropItem = itemPrefabs[Random.Range(0, itemPrefabs.Length)];
Vector3 pos = transform.position;
Instantiate(dropItem, new Vector3(pos.x, pos.y + 0.5f, pos.z), Quaternion.identity);
// ★追加
sm.AddScore(scoreValue);
}
}
}
}
![E4bbf86e 4f05 4379 af4e 4e177713cfda](https://codegenius.org/uploads/slide/image/2172/e4bbf86e-4f05-4379-af4e-4e177713cfda.jpeg)
![A004d270 7863 48b9 bbec a23cc5b19476](https://codegenius.org/uploads/slide/image/2173/a004d270-7863-48b9-bbec-a23cc5b19476.jpeg)
BattleTank(基礎/全31回)
他のコースを見る![A641e3ed a679 4c8f b51c a33d70ab2697](https://codegenius.org/uploads/slide/image/2166/a641e3ed-a679-4c8f-b51c-a33d70ab2697.jpeg)
![54ab36fb a33f 40f0 8dac e8e81bb824b6](https://codegenius.org/uploads/slide/image/2167/54ab36fb-a33f-40f0-8dac-e8e81bb824b6.jpeg)
![85697343 a1ef 46ed 8b84 34c27b42646d](https://codegenius.org/uploads/slide/image/2168/85697343-a1ef-46ed-8b84-34c27b42646d.jpeg)
スコアを増加させるメソッド
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// UIを使う場合には忘れずに追加すること!
using UnityEngine.UI;
public class ScoreManager : MonoBehaviour
{
private int score = 0;
private Text scoreLabel;
void Start()
{
scoreLabel = GameObject.Find("ScoreLabel").GetComponent<Text>();
scoreLabel.text = "SCORE:" + score;
}
// スコアを増加させるメソッド
// 外部からアクセスするためpublicで定義する
public void AddScore(int amount)
{
score += amount;
scoreLabel.text = "SCORE:" + score;
}
}
![B072da2d cc0b 4eb6 b0da f94c938541c6](https://codegenius.org/uploads/slide/image/2169/b072da2d-cc0b-4eb6-b0da-f94c938541c6.jpeg)
![99c2ad09 862c 4ce8 9bac 3dacbe769d82](https://codegenius.org/uploads/slide/image/2170/99c2ad09-862c-4ce8-9bac-3dacbe769d82.jpeg)
![7a3d545a 6e9f 4d31 8806 6626505ec2e0](https://codegenius.org/uploads/slide/image/2171/7a3d545a-6e9f-4d31-8806-6626505ec2e0.jpeg)
敵を倒すと点数が入る
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DestroyObject : MonoBehaviour
{
public GameObject effectPrefab;
public GameObject effectPrefab2;
public int objectHP;
public GameObject[] itemPrefabs;
// ★追加
public int scoreValue; // これが敵を倒すと得られる点数になる
private ScoreManager sm;
// ★追加
void Start()
{
// 「ScoreManagerオブジェクト」に付いている「ScoreManagerスクリプト」の情報を取得して「sm」の箱に入れる。
sm = GameObject.Find("ScoreManager").GetComponent<ScoreManager>();
}
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Shell"))
{
objectHP -= 1;
if (objectHP > 0)
{
Destroy(other.gameObject);
GameObject effect = Instantiate(effectPrefab, transform.position, Quaternion.identity);
Destroy(effect, 2.0f);
}
else
{
Destroy(other.gameObject);
GameObject effect2 = Instantiate(effectPrefab2, transform.position, Quaternion.identity);
Destroy(effect2, 2.0f);
Destroy(this.gameObject);
GameObject dropItem = itemPrefabs[Random.Range(0, itemPrefabs.Length)];
Vector3 pos = transform.position;
Instantiate(dropItem, new Vector3(pos.x, pos.y + 0.5f, pos.z), Quaternion.identity);
// ★追加
sm.AddScore(scoreValue);
}
}
}
}
![E4bbf86e 4f05 4379 af4e 4e177713cfda](https://codegenius.org/uploads/slide/image/2172/e4bbf86e-4f05-4379-af4e-4e177713cfda.jpeg)
![A004d270 7863 48b9 bbec a23cc5b19476](https://codegenius.org/uploads/slide/image/2173/a004d270-7863-48b9-bbec-a23cc5b19476.jpeg)
敵に得点を付けて画面にスコア表示