欢迎来到unity学习社区
今天的内容
用射线碰撞来种植白菜,并且在生成白菜后给予种植成功提示,提示在1秒后消失
射线种植白菜:
通俗的来讲就是通过定义一个射线投射碰撞来得出白菜的克隆位置,当碰撞发生时在鼠标点击位置克隆白菜,
种植成功后给予的提示:
这里使用guitext来实现 并用倒计时和bool型标志位来判断鼠标点击事件,当发生投射碰撞时将flag赋值为true 否知为false,提示判断为当flag为true时给予成功提示,否则不给提示
代码为:
public Transform cabbage; //预设体
public GUIText t;
bool flag1 = false; //标志位
float a = 1f; 倒计时时间
void Start()
{
t.enabled = false;//t初始值为空
}
void Update()
{
if (Input.GetMouseButtonDown(0)) //鼠标点击
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//定义射线
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 1000)) //如果发生碰撞
{
cabbage = Instantiate(cabbage, hit.point, Quaternion.identity) as Transform;
flag1 = true;
a = 1f;//时间重置
}
}
else
{
a -= Time.deltaTime;//倒计时
if (a <= 0 && a > -0.1)
{
flag1 = false;
}
}
if (flag1)//提示当flag为true时
{
t.color = Color.red;
t.fontSize = 30;
t.text = "*种植成功*";
}
else {
t.guiText.text = " ";
}
}