Unity 游戏物体的显示隐藏以及Time类

组件的激活和隐藏:

使用渲染器(Renderer)中的enable属性:

public class Demo4 : MonoBehaviour {

    public MeshRenderer rander; //在面板中拖拽赋值

    void Update () 
    {

        if (Input.GetMouseButtonDown(0))    
        { 
            //鼠标点击切换状态
            rander.enabled = !rander.enabled;        
        }    
    }
}

 

物体的激活和隐藏;

gameObject.SetActive(bool b);

一旦物体被隐藏(gameObject.SetActive(false);),则其无法通过通过(gameObject.SetActive(true);)再显示出来,因为一旦被false之后,表示这个物体已经不在场景中了,用代码GameObject.Find();也找不到 ,可以理解为物体身上代码不会执行,组件也没有作用

解决办法;

把脚本挂载在别的物体身上,操作要隐藏的物体,这样就可以通过gameObject.SetActive(true);再次激活

 

判断物体本身或者其父类物体是否可见:

gameObject.activeinhierarchy; //判断组件是否可见,(只读的)

 

鼠标的光标显示与隐藏:

Cursor.visible = false;

Cursor.visible = true ;

相应事件 — Onenable , OnDisable , OnDeStroy (生命周期函数)

三个响应事件在项目中运行时,是实时监控的

当结束项目运行时,Ondisable 与 OnDestroy 都会被执行一次

前两个针对的是游戏对象,最后一个针对的是脚本本身

 

Time 类及时间控制

Time时间类成员变量介绍

Time Manager 时间管理器

Time.time 从游戏开始到现在时间 (只读)

Time.deltaTime 以秒计算,完成最后一帧的时间 指两帧之间的时间间隔

Time.fixedTime 最近的FixedUpdate 已经开始的时间,这是以秒计算自游戏开始的时间

Time.Scale 传递时间的缩放,可以英语缓慢或加速效果 若为0 则表示静止

Time;.realtimeSinceStratup 自从游戏开始实时时间

注:scaleTime影响的是Time,time,影响的时间,不会影响realtimeSinceStratup

 

timeSincelevelLoad 在同一场景中与time值是一样的,当前切换场景,这个时间会重新计算

在处理逻辑是使用Update效果更好

frameCount 记录的是所有的帧数量值

realtimeSinceStartup 与Time.time 一样记录项目运行时间,不同的是Time.time 记录项目运行时间,而realtimeSinceStartup 记录的是所有时间,包括项目暂停,时间也同样记录

 

在Unity中,Time类是一个非常重要常用的类。我们可以通过Time类来获取和时间有关的信息,可以用来计算帧速率,可以调整时间的速度等功能。

你可能感兴趣的:(ジ﹋★☆『,Unity,3D,』,Unity,引擎入门,Unity,Time类,游戏物体,组件,显示隐藏)