Unity3D中隐藏与显示物体的一些操作
来源:互联网 发布:kettle调用java程序 编辑:程序博客网 时间:2024/06/10 07:09
在使用unity3d开发游戏的过程中,我们常常会遇到需要隐藏或者显示的操作,针对这一点,下面做了一些总结。
一、设置Renderer状态
在游戏的开发中,所有能够被渲染的物体都包含有一个Renderer组件,使用它可以将物体渲染到屏幕上,那么如果禁用了这一组件的话,自然也就实现了物体的隐藏。
下面就是实现这一功能的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using UnityEngine;
using System.Collections;
public class test : MonoBehaviour {
public Transform target;
void Start(){
}
void OnGUI(){
//renderer control
if
(GUILayout.Button(
"display"
)){
MeshRenderer[] marr = target.GetComponentsInChildren<MeshRenderer>(
true
);
foreach(MeshRenderer m
in
marr){
m.enabled =
true
;
}
}
if
(GUILayout.Button(
"hide"
)){
MeshRenderer[] marr = target.GetComponentsInChildren<MeshRenderer>(
true
);
foreach(MeshRenderer m
in
marr){
m.enabled =
false
;
}
}
}
}
在这里我做了一个遍历,因为有的物体可能会有多个面片这种情况下就需要把物体的所有面片上的MeshRenderer全部禁用掉。但是也可能会有一些较为复杂的渲染可能会有Trail Renderer,Line Renderer,Skinned Mesh Renderer,Mesh Renderer等,那就找到它,禁用/激活它来实现隐藏或显示。
二、设置Active
unity4.x写法:1
2
gameObject.SetActive(
true
);
//显示物体
gameObject.SetActive(
false
);
//隐藏物体
1
2
gameObject.SetActiveRecursively(
true
);显示物体
gameObject.SetActiveRecursively(
false
);隐藏物体
unity4.x会保持当前物体子物体所有的状态,unity3.x则是如果设置active为true,所有子物体全部变为true。 这也是unity升级后改进的一点。
三、设置Layer
假设现有Layer为:
Default = 0,TransparentFX = 1,Ignore Raycase = 2,Water = 4,MyLayer = 8.
设置相机Camera的Culling Mask为:Default+TransparentFX+Ignore Raycase+Water.
那么当设置物体的Layer为MyLayer时候,物体的Layer层在当前相机被忽略,也就相当于隐藏。具体代码为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using UnityEngine;
using System.Collections;
public class test : MonoBehaviour {
void OnGUI () {
if
(GUILayout.Button(
"Display"
)){
gameObject.layer = LayerMask.NameToLayer(
"Default"
);
}
if
(GUILayout.Button(
"Hide"
)){
gameObject.layer = LayerMask.NameToLayer(
"MyLayer"
);
}
}
}
0 0
- Unity3D中隐藏与显示物体的一些操作
- Unity3D中隐藏与显示物体
- Unity3D中隐藏与显示物体的方法
- unity3d中让物体显示和隐藏的方法
- unity3d中让物体显示和隐藏
- unity3d中隐藏/显示物体方法总结
- unity3d中隐藏/显示物体方法总结
- unity3d中让物体显示和隐藏
- 设置物体的隐藏与显示
- unity3d中隐藏/显示物体方法总结 – unity3d游戏开发
- NGUI与Unity3d物体交叉显示的一种解决方案
- Unity3D基础学习 加载场景时隐藏物体,点击显示时显示物体
- Unity3d代码获取隐藏物体
- 【Unity3D】物体、材质的设置、物体位移与旋转
- Unity3d中物体的的碰撞检测
- [maya学习笔记(7)] 物体的显示与隐藏 大纲视图的使用
- unity3d 中物体的跟随地形倾斜
- unity3d中获得物体的size
- K-Means算法学习笔记
- iOS中AutoLayer自动布局流程及相关方法
- python 文件、目录操作(新增、移动、删除等)
- STM32入门学习之SysTick系统定时器(STM32F030F4P6基于CooCox IDE)
- UWP 绘制图形
- Unity3D中隐藏与显示物体的一些操作
- linux中的条件测试
- PHP的PDO类
- mysql数据表存储图片等二进制文件
- 日经春秋 20151112
- 定点小数与浮点小数
- 二叉树递归遍历
- web.py源码分析: application
- Android中Handler引起的内存泄露