阅读 847

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类来获取和时间有关的信息,可以用来计算帧速率,可以调整时间的速度等功能。


作者:陈言必行
链接:https://juejin.cn/post/7030935045447614472


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐