在unity中如何做到真实掉率,60%的木材,30%的石材,9%的黏土,1%的珍珠
时间: 2024-03-01 10:56:05 浏览: 19
在Unity中实现掉率可以使用随机数生成器。以下是一个示例代码:
```
using UnityEngine;
using System.Collections;
public class DropController : MonoBehaviour {
public GameObject woodPrefab;
public GameObject stonePrefab;
public GameObject clayPrefab;
public GameObject pearlPrefab;
void OnTriggerEnter(Collider other) {
if (other.CompareTag("Player")) {
float rand = Random.Range(0f, 100f);
if (rand <= 60f) {
Instantiate(woodPrefab, transform.position, Quaternion.identity);
} else if (rand <= 90f) {
Instantiate(stonePrefab, transform.position, Quaternion.identity);
} else if (rand <= 99f) {
Instantiate(clayPrefab, transform.position, Quaternion.identity);
} else {
Instantiate(pearlPrefab, transform.position, Quaternion.identity);
}
}
}
}
```
这个脚本可以挂在物体上,当玩家与其发生碰撞时触发。在 `OnTriggerEnter` 函数中,使用 `Random.Range()` 生成一个 0 到 100 之间的浮点随机数,然后根据不同的范围实例化不同的预制体。
在这个例子中,如果随机数小于等于60,则实例化 `woodPrefab`,表示掉落木材;如果在60到90之间,则实例化 `stonePrefab`,表示掉落石材;如果在90到99之间,则实例化 `clayPrefab`,表示掉落黏土;如果大于99,则实例化 `pearlPrefab`,表示掉落珍珠。