首页 新闻 搜索 专区 学院

u3d update为什么每一帧都被调用

0
悬赏园豆:200 [待解决问题]

u3d update为什么每一帧都被调用,在哪里调用的?还有一些像OnMouseEnter等方法。会不会在哪里将方法注册到事件里了,满足条件就调用事件。但是在哪里注册的呢?还有一些实现了接口的方法也是。c#

菜鸟101号的主页 菜鸟101号 | 初学一级 | 园豆:4
提问于:2017-10-30 21:04
< >
分享
所有回答(2)
0

float rendtime=0.0f;

float maxtime=1000/60;

wilte(true){

if(rendtime<maxtime)

{

Thread.Sleep(maxtime-rendtime);

}

Update();

}

 

Update 通常就是渲染一帧(完成 整个游戏的一次渲染 循环) 

因为U3D是跨平台的。 OnMouseEnter 什么的 要看平台的吧。建议找些入门的 教程看看。

SoarNo1 | 园豆:193 (初学一级) | 2017-11-03 09:39

你好soarNo1,我想了解的是update被唤醒或者说是被调用是在哪个类里或者哪个位置。

比如说一个类(class A)里定义了一个静态事件(event a),然后每分钟调用这个事件一次(如果事件不为空),我在另一个类(B)里订阅这个事件(A.a+=b),然后B里的方法b就可以每分钟执行一次。

我地意思是update是注册了哪个事件吗?如果是那么在哪注册的,如果不是那么是怎么实现每一帧都被调用一次。

支持(0) 反对(0) 菜鸟101号 | 园豆:4 (初学一级) | 2017-11-03 11:10
1

update是框架的约定,和main是程序入口一样的。

你自己的事件如果和UI不相关,那和在其他框架写事件的注册一样。保持注册的事件不要被销毁就行了。

百度U3D 自定义事件

arg | 园豆:1047 (小虾三级) | 2017-11-04 17:22

你好arg,原来是这样谢谢 不过我还有个疑惑的地方

比如说一个类A实现了photon server的ApplicationBase这个抽象基类,服务器启动后就会调用A类重写了基类的抽象方法Setup,这也是约定好的吗?像这种约定可以自定义吗?谢谢

支持(0) 反对(0) 菜鸟101号 | 园豆:4 (初学一级) | 2017-11-04 17:56

@菜鸟101号: 不采取非常规手段是不可以的(非常规手段就是用after和begin这种钩子注入等方式),也不必要。想要使用别人的服务总要遵守一些规则。

并且别人已经给出让你重载的机会来自定义实现,没必要纠结。只要有路,有接口就行。

支持(0) 反对(0) arg | 园豆:1047 (小虾三级) | 2017-11-07 16:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册