Unity3D作

在使用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);//隐藏物体

unity3.x写法:

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");
                }
        }
}

以上各种方法谨供大家參测试,当选择应根据实际情况选择合适的方法来实现隐藏和显示对象。

Unity3D方法来隐藏和显示对象的更多相关文章

  1. 【NX二次开发】隐藏、显示对象UF_OBJ_set_blank_status

    隐藏.显示对象用UF_OBJ_set_blank_status() 查看对象显示情况用UF_OBJ_ask_display_properties() 效果: 源码: #include "Te ...

  2. Javascript与jQuery方法的隐藏与显示

    如题,代码奉上. <html> <head> <title>denotoggle</title> <style> #box { width: ...

  3. wicket基础应用(3)——wicket控件的隐藏和显示

    在一个项目,页面经常要显示和隐藏一些控件,用wicket来控制显示和隐藏控件相当的方便. 1.最简单的隐藏和显示方法: wicket的控件大部分都有setVisible(...)方法,用这个方法就可以 ...

  4. jQuery_效果(隐藏和显示)

    一.jQuery hide() 显示和 show()隐藏 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: <script type=" ...

  5. jQuery控制元素隐藏和显示

    1.jQuery隐藏和显示效果 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: $("#hide").click(functio ...

  6. jQuery 效果 – 隐藏和显示

    在 jQuery 中可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素,以及使用 toggle() 方法能够切换 hide() 和 show() 方法. 隐藏.显示.切换,滑动 ...

  7. jQuery效果--隐藏和显示

    jQuery hide() 和 show() 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: $("#hide").click( ...

  8. 如何使用T-SQL备份还原数据库及c#如何调用执行? C#中索引器的作用和实现。 jquery控制元素的隐藏和显示的几种方法。 localStorage、sessionStorage用法总结 在AspNetCore中扩展Log系列 - 介绍开源类库的使用(一) span<T>之高性能字符串操作实测

    如何使用T-SQL备份还原数据库及c#如何调用执行? 准备材料:Microsoft SQL Server一部.需要还原的bak文件一只 一.备份 数据库备份语句:user master backup ...

  9. jquery控制元素的隐藏和显示的几种方法

    使用jquery控制div的显示与隐藏,一句话就能搞定,例如: 方法一 显示: $("#id").show()表示为display:block, 隐藏: $("#id&q ...

随机推荐

  1. Android真机网络adb联机调试初探

    新项目是一个基于android4.2设备.刚拿到demo板时就对联机互调感兴趣了.处于以前在S3c2440上对linux的移植使用经验.心里猜测对于android设备应该也这样.所以通过搜索资料整理如 ...

  2. [poj 1127]Jack Straws[线段相交][并查集]

    题意: 给出一系列线段,判断某两个线段是否连通. 思路: 根据线段相交情况建立并查集, 在同一并查集中则连通. (第一反应是强连通分量...实际上只要判断共存即可, 具体的方向啊是没有关系的..) 并 ...

  3. Python 类继承,__bases__, __mro__, super

    Python是面向对象的编程语言,也支持类继承. >>> class Base: ... pass ... >>> class Derived(Base): ... ...

  4. Flex读取txt文件里的内容(二)

    Flex读取txt文件里的内容 自己主动生成的文件 LoadTxt-app.xml: <?xml version="1.0" encoding="utf-8&quo ...

  5. TCP、UDP和HTTP

    先来一个讲TCP.UDP和HTTP关系的 1.TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中 ...

  6. sharpSVN说明文档

    http://sharpsvn.open.collab.net/docs/walkthrough.htm

  7. 【android自己定义控件】自己定义View属性

    1.自己定义View的属性 2.在View的构造方法中获得我们自己定义的属性 3.重写onMesure 4.重写onDraw 3这个步骤不是必须,当然了大部分情况下还是须要重写的. 1.自己定义Vie ...

  8. CSS选项卡

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org ...

  9. mmc生产任务分配问题

    mmc生产任务分配问题,本题目简单.

  10. android com.handmark.pulltorefresh 使用技巧

    近期使用android com.handmark.pulltorefresh 遇到一些小问题.如今总结一些: 集体使用教程见: http://blog.csdn.net/harvic880925/ar ...