前文:https://blog.csdn.net/Jaihk662/article/details/86766196(物体实例化)
在很多游戏中,都有那种类似“奖励分”的游戏道具,它们会随机刷出,玩家捡到之后就会获得相应的分数或者物品,但是如果在一段时间内没有被任何玩家“拾取”,那么这个奖励道具就会消失
一、随机函数
接前文:很多情况下,奖励道具都是随机位置生成的,这个时候就需要添加随机函数了
Random.Range(min, max):在[min, max]范围内,随机生成一个数字(float类型)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CoinPrint : MonoBehaviour
{
public GameObject Mycoin;
void Start()
{
float x, z;
x = Random.Range(-5f, 4.2f); //-5f和(float)-5效果一样
z = Random.Range(-5f, 4.2f);
GameObject.Instantiate(Mycoin, new Vector3(x, (float)0.05, z), Quaternion.identity);
}
void Update()
{
}
}
效果如下:
二、物体销毁
GameObject.Destroy(Object, Time):
参数说明:
- Object:需要销毁的预制体;
- Time:多少秒后销毁(float)
因为销毁的是实例化出的对象,所以销毁函数要挂在需要被销毁的物体上
销毁脚本如下(3秒后销毁物体Coin):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CoinDest: MonoBehaviour
{
public GameObject Mycoin;
void Start()
{
GameObject.Destroy(gameObject, 3);
}
void Update()
{
}
}
生成脚本改成每隔一段时间生成一个,而不再是一开始直接生成一个
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CoinPrint : MonoBehaviour
{
int flag;
public GameObject Mycoin;
void Start()
{
flag = 0;
}
void Update()
{
flag++;
if (flag % 15 == 0)
{
float x, z;
x = Random.Range(-5f, 4.2f); //-5f和(float)-5效果一样
z = Random.Range(-5f, 4.2f);
GameObject.Instantiate(Mycoin, new Vector3(x, (float)0.05, z), Quaternion.identity);
}
}
}
效果如下: