栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

Unity控制物体显示和隐藏

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity控制物体显示和隐藏

Unity控制物体显示和隐藏
在开发过程中常常需要对物体进行隐藏和显示操作,包括对UI和物体的控制,以下的实验均为UGUI的前提下。

思路提示
其实整体的思路无非就是两种,
一种是直接暴力的将这个物体设置为未激活状态,这样上边的脚本也就不能运行了,如果想再次激活则需要其他物体来进行控制恢复
另一种思路是设置到看不见的状态,这里设置看不见的状态,又可以设置物体的Render组件或者是设置UI的透明度,如果是由Shader里边控制的,可以更改Shader的的透明度属性,Shader需要开启透明度测试。这种方式相当于是隐身,不会影响物体挂载的脚本运行。

通用的显示和隐藏
设置物体的激活状态
关键要点
void Show() {
gameObject.SetActive(true);
}
void Hide() {
gameObject.SetActive(false);
}

如果存在子物体需要一起控制,需要使用SetActiveRecursively(false)

3D物体的显示和隐藏
设置Renderer状态
这种方法,相当于是只是隐身的状态,实际上物体还是存在的只是不显示出来而已
一定要先注意,物体有没有Render组件,一般来说需要渲染的物体都有(非UI)
关键要点

void Show() {
    gameObject.GetComponent().enabled = true;
}

void Hide(){
    gameObject.GetComponent().enabled = false;
}

设置Shader的透明度
这种方式首先要看物体的材质球上边的Shader是否有可以控制的透明度属性,
如果有才可以进行控制。

void Show() {
    material.SetColor("_Color", Color.white);
}
void Hide(){
    material.SetColor("_Color", Color.clear);
}

UI的显示和隐藏
更改组件颜色的透明度
如果组件比较简单,有明显的可以调节颜色透明度的地方,可以直接进行设置,
比如Image组件,Text组件 ,缺点比较麻烦,只能控制自身

CanvasGroup组件
这种方法可以同时控制子物体的显示和隐藏
关键要点
首先要给UI添加一个CanvasGroup组件

void Show() {
    gameObject.GetComponent().alpha = 1;
}

void Hide() {
    gameObject.GetComponent().alpha = 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/897784.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号