Unity问答第4期
来源:互联网 发布:宾馆前台软件 编辑:程序博客网 时间:2024/05/01 00:48
Unity问答第4期
1、在Unity里3个update(FixedUpdate、Update、LateUpdate)的用法和区别?
9ria游戏开发社区的黄祖祥的文章《关于Unity3D中的Update、LateUpdate、FiexdUpdate》:
http://bbs.9ria.com/thread-417976-1-1.html
博客园的赵青青的两篇文章总结的http://www.cnblogs.com/zhaoqingqing/p/3454091.html
http://www.cnblogs.com/zhaoqingqing/p/3296086.html
Update()是每帧执行的函数,更新频率和设备的性能有关。
一般你要不停地计算不停地执行着什么的话,是写在Update里的。
FixedUpate()是固定时间间隔执行函数(可人为调整间隔时间),不受游戏帧率影响。
但如果你写的算法是要不断的处理Rigidbody(俗称刚体)以及物理运算神马的,那就最好写在FixedUpate,
LateUpdate()是在所有Update()函数执行完之后,执行。
正因为LateUpdate慢于update所以可以避免在update中因频繁的计算物体的位置方向选装导致的抖动问题。
2、Unity3d中的1单位是FBX文件中的1单位的几倍?
答:unity中的1单位是fbx文件中的1单位的100倍。这题考你模型缩放的问题,建模软件、游戏引擎软件都有自己的单位比例,在建模软件(如max、maya)中制作模型时。
建议:如果我们想unity中使用1单位=1米的话,那在max和maya中制作的时候,单位就设置成1厘米,以此类推。
注意上面的只是建议(其实你不按套路出牌也没关系,fbx导出到unity里后,在里面也可以调整缩放比。)但毕竟是过来人的建议。
3、为了减少性能开销,移动端实现实时阴影的方法是什么?
答:一般像COC的做法是直接用一个圆的黑的图做实时阴影,很多卡通类的游戏也都是这么做的,确实够简单粗暴。
雨松momo早前写的一篇文章吧《RenderTexture制作动态阴影四十八》
http://www.xuanyusong.com/archives/2132
还有新浪博客的一篇《Unity3D实时阴影——Projector投影器》
http://blog.sina.com.cn/s/blog_799860f90102vkp2.html
4、一张图片的像素格式为512*512,若每个像素占4位,存储这张图片的大小为多少KB/MB?
1个字节为8位
0.5个 字节为4位
所以512 * 512 * 0.5 = 131072 B
131072 / 1024 = 128 KB
128 / 1024 = 0.125MB
那么如果假设每个通道占4位,也就是一个像素占4*4,也就是16位,
那得出的这张图的大小为512 * 512 * 0.5 * 4 = 524288 B
524288 / 1024 = 512KB
唯一的解释是,我想,这应该是一张只带alpha通道的灰度图,
也就是一个像素,只包含一个通道的信息,那么就和我们的答案一模一样了。
5、Unity5.X版本中,如何添加GUI Text组件?是否有其他更好的方法代替它?(新手常见问题)
答:既然这道题是针对新手,DC老湿就不妨多啰嗦几句。
有两种方法添加GUI Text组件
1、选中要添加组件的载体——>Component——>Rendering——>GUI Text。
2、选中要添加组件的载体——>在其Inspector面板下点击Add Component——>GUI Text。
6、项目导入一张图集后,如何在Unity中使用?(变成一张张的小图)
答:这个题是UI的题目,同上。
三种方法,ngui、dfgui、ugui
NGUI和DFGUI,是要先把这整张图集切成一张张的小图,里有其各自的MakeAtlas做成一个Atlas图集预设,然后再其各自的Sprite(NGUI是UISprite,DFGUI是dfSprite里面去,Sprite.SpriteName得到你想要的单张小图)。
而UGUI的做法,跟据宣雨松(雨松momo)的说法是,UGUI的原理是让开发者彻底模糊图集的概念,让开发者不要去关心自己的图集。做界面的时候用小图,而在最终打包的时候,unity才会把你的小图合并在一张大图集里面。这一切的一切都是自己动完成的,开发者不用过分在意。
详细的做法和操作步骤在这个链接里。
http://www.xuanyusong.com/archives/3304
7、当一个物体在视野内被其他物体遮挡,不希望对该物体进行渲染,可以通过哪一个模块实现?
答:可以通过遮挡剔除实现。
首先选中场景中的某个物体在其Inspector检视面板里,把Static勾上。
8、值类型和引用类型的区别?
答:
博客园的《值类型和引用类型,栈和堆的含义》http://www.cnblogs.com/tonney/archive/2011/04/28/2032205.html
网上搜到的无非内存分配空间,和你讲栈和你讲堆。
其实你可以这么理解,更加形象,
“你手里有份报纸很有趣,你朋友很想看,你复印了一份,给你朋友”这个就叫值类型的操作。
“你发现一个网址很有趣,你朋友很想看,你把这个网址,告诉你朋友”这个就叫引用类型的操作。
10、下列代码在运行中会发生什么问题?如何避免?
List<int> ls = newList<int>(new int[]{1,2,3,4,5});foreach(int item in ls){ Console.WriteLine(item*item); ls.Remove(item);}
那么学编程的人都知道foreach和for不一样,遍历的时候,是不能对集合内的成员随意删改的,这也是二者最大的区别之一。
泰斗社区:原文地址
====================================================================================
结束。
- Unity问答第4期
- Unity问答第1期
- Unity问答第2期
- Unity问答第3期
- Unity问答第5期:单例;
- 【互动问答分享】第4期决胜云计算大数据时代Spark亚太研究院公益大讲堂
- 第4期
- OSC 第 130 期高手问答 — 究竟什么才是微服务?_黄勇【摘选】
- PaperWeekly 第32期 | 基于知识图谱的问答系统关键技术研究 #01
- CIPS青工委学术专栏第15期 | 基于知识的智能问答技术
- Unity问答系列1
- 随记一些Unity问答
- 二逼事汇总 第4期
- 【互动问答分享】第5期决胜云计算大数据时代Spark亚太研究院公益大讲堂
- 【互动问答分享】第6期决胜云计算大数据时代Spark亚太研究院公益大讲堂
- 【互动问答分享】第7期决胜云计算大数据时代Spark亚太研究院公益大讲堂
- 【互动问答分享】第8期决胜云计算大数据时代Spark亚太研究院公益大讲堂
- 【互动问答分享】第9期决胜云计算大数据时代Spark亚太研究院公益大讲堂
- 五模十频
- Objextive-C入门学习1--使用NSLog函数在屏幕上打印HelloWorld
- Behavior的demo——粗仿天猫详情页效果
- 普里姆算法、克鲁斯卡尔算法、最短路径
- 每天学习十分钟21之界面原型设计
- Unity问答第4期
- 关于void GetMemory(*p)与void* GetMemory()的讨论
- Android中的异步通信类AsyncTast
- java 的文件操作
- 移动定位业务之“A-GPS(辅助全球卫星定位系统)”
- 论“神”
- 在iOS9 中,苹果将原http协议改成了https协议,使用 TLS1.2 SSL加密请求数据。要使用HTTP要修改PTLIST
- ZOJ 1871:Steps
- 算法-蓝桥杯习题(3-3)