アイテムをランダムに出現させる
アイテムのランダム出現
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;
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Shell"))
{
objectHP -= 1;
if (objectHP > 0)
{
Destroy(other.gameObject);
GameObject effect = Instantiate(effectPrefab, other.transform.position, Quaternion.identity);
Destroy(effect, 2.0f);
}
else
{
Destroy(other.gameObject);
GameObject effect2 = Instantiate(effectPrefab2, other.transform.position, Quaternion.identity);
Destroy(effect2, 2.0f);
Destroy(this.gameObject);
// ★追加
// ランダムメソッドの使い方を学習しよう。
int itemNumber = Random.Range(0, itemPrefabs.Length);
// ★追加
if (itemPrefabs.Length != 0)
{
Vector3 pos = transform.position;
// ★改良
// itenMunberの数字によって、出るアイテムが変化する(ポイント)
Instantiate(itemPrefabs[itemNumber], new Vector3(pos.x, pos.y + 0.6f, pos.z), Quaternion.identity);
}
}
}
}
}
異なる出現確率
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;
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Shell"))
{
objectHP -= 1;
if (objectHP > 0)
{
Destroy(other.gameObject);
GameObject effect = Instantiate(effectPrefab, other.transform.position, Quaternion.identity);
Destroy(effect, 2.0f);
}
else
{
Destroy(other.gameObject);
GameObject effect2 = Instantiate(effectPrefab2, other.transform.position, Quaternion.identity);
Destroy(effect2, 2.0f);
Destroy(this.gameObject);
// ★改良
// itemNumberが「0〜99」のいずれかになるようにする。
int itemNumber = Random.Range(0, 100);
if(itemPrefabs.Length != 0)
{
Vector3 pos = transform.position;
// ★改良
// StopAttackItemの出現確率・・・>10%
if(itemNumber < 10)
{
Instantiate(itemPrefabs[0], new Vector3(pos.x, pos.y + 0.6f, pos.z), Quaternion.identity);
}
// ShellItemの出現確率・・・>30%
else if (itemNumber < 40)
{
Instantiate(itemPrefabs[1], new Vector3(pos.x, pos.y + 0.6f, pos.z), Quaternion.identity);
}
// HPItemの出現確率・・・>60%
else
{
Instantiate(itemPrefabs[2], new Vector3(pos.x, pos.y + 0.6f, pos.z), Quaternion.identity);
}
}
}
}
}
}
【2021版】BattleTank(基礎/全33回)
他のコースを見るアイテムのランダム出現
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;
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Shell"))
{
objectHP -= 1;
if (objectHP > 0)
{
Destroy(other.gameObject);
GameObject effect = Instantiate(effectPrefab, other.transform.position, Quaternion.identity);
Destroy(effect, 2.0f);
}
else
{
Destroy(other.gameObject);
GameObject effect2 = Instantiate(effectPrefab2, other.transform.position, Quaternion.identity);
Destroy(effect2, 2.0f);
Destroy(this.gameObject);
// ★追加
// ランダムメソッドの使い方を学習しよう。
int itemNumber = Random.Range(0, itemPrefabs.Length);
// ★追加
if (itemPrefabs.Length != 0)
{
Vector3 pos = transform.position;
// ★改良
// itenMunberの数字によって、出るアイテムが変化する(ポイント)
Instantiate(itemPrefabs[itemNumber], new Vector3(pos.x, pos.y + 0.6f, pos.z), Quaternion.identity);
}
}
}
}
}
異なる出現確率
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;
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Shell"))
{
objectHP -= 1;
if (objectHP > 0)
{
Destroy(other.gameObject);
GameObject effect = Instantiate(effectPrefab, other.transform.position, Quaternion.identity);
Destroy(effect, 2.0f);
}
else
{
Destroy(other.gameObject);
GameObject effect2 = Instantiate(effectPrefab2, other.transform.position, Quaternion.identity);
Destroy(effect2, 2.0f);
Destroy(this.gameObject);
// ★改良
// itemNumberが「0〜99」のいずれかになるようにする。
int itemNumber = Random.Range(0, 100);
if(itemPrefabs.Length != 0)
{
Vector3 pos = transform.position;
// ★改良
// StopAttackItemの出現確率・・・>10%
if(itemNumber < 10)
{
Instantiate(itemPrefabs[0], new Vector3(pos.x, pos.y + 0.6f, pos.z), Quaternion.identity);
}
// ShellItemの出現確率・・・>30%
else if (itemNumber < 40)
{
Instantiate(itemPrefabs[1], new Vector3(pos.x, pos.y + 0.6f, pos.z), Quaternion.identity);
}
// HPItemの出現確率・・・>60%
else
{
Instantiate(itemPrefabs[2], new Vector3(pos.x, pos.y + 0.6f, pos.z), Quaternion.identity);
}
}
}
}
}
}
アイテムをランダムに出現させる