Unity3D知识点
世界空间(World):整个虚拟世界的3d空间,在Unity3d中以米作为单位,如长100米宽100米高100米的立体空间。
屏幕空间(Screen):屏幕2d空间,大小就是屏幕的大小,以像素作为单位,可以设定屏幕大小,0点在左上角,向右为x正向,向下为y正向。
视口空间(Viewport):摄像机的显示范围空间,x介于0-1,y介于0-1的2d空间,0点在左下脚,(1,1)点在右上角。世界空间坐标常常需要转换到视口空间,然后转换到屏幕空间。
Unity3D的坑:在C#脚本中创建了枚举类型后,如果你已经在物体的脚本上指定了不同的枚举类型,此时你打乱枚举类型中变量次序,或者把新建类型放在最前面,那么你之前指定的类型全部乱了,必须恢复顺序。
Application.LoadLevel,该函数在加载关卡时不会重置已存在的静态变量的值,需要手动重置
Destroy,使用这个销毁对象的函数时,注意参数不是"类的对象",应该是"对象名.GameObject",否则场景中物体不会消失
DontDestroyOnLoad(GameObject obj),这个函数最好放在静态构造函数中,这样就只会执行一次;或者loading界面执行;或者用代码来创建物体并挂载脚本。
WorldToScreenPoint,使用这个函数可以进行场景3D与屏幕2D的坐标转换,相反的是camera.screenToWorldPoint
StartCoroutine,用于启动一个协程,与主线程一起执行,貌似多线程,实际上是CPU分时的单线程,性能不是太好。但是,它有时用起来很方便,相当于在Update里启动一个计时器函数,可以防止界面卡死。
Input.GetKey(KeyCode.LeftShift) && Input.GetKey(KeyCode.W),同时按下多个键 ,常用于实现人物奔跑效果
GetKey:按键按下期间返回true
GetKeyDown:按键按下的第一帧返回true
GetKeyUp:按键松开的第一帧返回true
GetAxis("Horizontal")和GetAxis("Vertical"):用方向键或WSAD来模拟-1到1的平滑输入
退格键:backspace;回车键:return;退出键:esc;后面是按键名,例如, Input.GetKey("up"), Input.GetKey("esc")
Unity3D使用GUI或者GUILayout时,如果用代码动态创建对象,可能会出现画面闪烁问题。我通常的解决办法是,看看哪些变量在其中被改变了,找到它们,尽量不要改变即可。
GuiText始终会被放置在顶层,如果你不想这样显示,但又需要程序文字,建议使用3DText,把scale调小,把font size调大即可。
如果需要NGUI支持Android电视的空鼠,可以打开UICamera脚本,找到Awake函数, 把useMouse改为true,useTouch改为false
Android盒子遥控器按键:
Up Arrow KeyCode.UpArrow
Down Arrow KeyCode.DownArrow
Left Arrow KeyCode.LeftArrow
Right Arrow KeyCode.DownArrow
Center Button KeyCode.JoystickButton0
Back button KeyCode.Escape
Menu Button KeyCode.Menu
Unity3D中要想脚本中变量在编辑器中显示,需要满足以下要求:变量必须被public修饰,不能使用[HideInInspector]修饰,变量的类型必须继承自MonoBehaviour。如果想把某个脚本挂在GameObject上,该脚本必须继承自MonoBehaviour,否则根本看不到该脚本。
Unity3D Asset Store 下载的文件保存位置 C:\Users\sh\AppData\Roaming\Unity\Asset Store。
Unity3D对C#仅提供有限的支持,在Player Settings中可以看到目前为.Net 2.0 Subset。所以在编写C#脚本时,可能无法对某些C#特性提供支持,出现一些奇怪的现象。比如无法修改单实例对象,常常需要把变量改为static类型才可以修改成功。
使用Android插件与外置硬件设备交互时,我遇到过数据读取的错误,这里可能需要对AndroidManifest.xml配置文件做如下修改:
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
如果在Unity中使用了Android插件,那么需要修改AndroidManifest.xml文件,主要改package和activity中的name,例如android:name=".MainActivity"。
在使用UnityPlayer.UnitySendMessage("gameobject", "functionname", result)这个函数时,有一点需要注意:第三个参数result中不能包含特殊字符,否则整个字符串传递到Unity游戏中都会为空。比如,在Android开发中,我先把"00"这个16进制字符串转换为了char字符,然后append到了一个StringBuilder字符串中,最后传递这个字符串到Unity中,收到的值总是为空,且无论原来这个字符串是什么。
Unity3D知识点的更多相关文章
- unity3D 知识点随手记
最近闲来无事,记记unity3D相关的一些知识点吧,也当作笔记存储.转载请标明出处:http://www.cnblogs.com/zblade/ 1.unity是如何调用Start/Awake等相关函 ...
- unity3d 知识点随记
1.transform.translate是增加transform面板相应的数值x,y,z是以本地坐标系为方向:transform.transformdirection是以世界坐标系为方向,可以去测试 ...
- Unity3D重要知识点(转)
Unity3D重要知识点 数据结构和算法很重要!图形学也很重要!大的游戏公司很看重个人基础,综合能力小公司看你实际工作能力,看你的Demo. 1.什么是渲染管道? 是指在显示器上为了显示出图像而经过的 ...
- Unity3D重要知识点
数据结构和算法很重要!图形学也很重要!大的游戏公司很看重个人基础,综合能力小公司看你实际工作能力,看你的Demo. 1.什么是渲染管道? 是指在显示器上为了显示出图像而经过的一系列必要操作. 渲染管道 ...
- Unity3d操作的一些技巧知识点和BUG解决方案
自己记录一些东西,转载请良心注明出处. 1.如何同时打开两个UNITY3D项目. 有时候需要对比,或者需要添加另一个项目的某资源到目前项目,同时打开两个项目看起来会比较明了.如果直接打开的话, ...
- Unity3D UGUI中ScrollRect的一些知识点
需求 这几天在公司里,项目需要将游戏游戏中的2D城堡界面在拉动的时候显示出3D的拉近效果.当时是在Cocos2d-x下实现的.回家的时候自己重新用Unity实现的了一遍. 虽然现在Unity已经到了5 ...
- unity3d API知识点随记
1.transform.translate是增加transform面板相应的数值x,y,z是以本地坐标系为方向:transform.transformdirection是以世界坐标系为方向,可以去测试 ...
- 【Unity3D】资源对象、预设、查找对象、组合模式等知识点
1.解释对象与资源区别于联系,根据官方案例,分别总结资源和对象组织的规则/规律. 下载并查看了Adam和Survival Shooter tutorial两个官方资源案例,这些案例作为资源,可以 ...
- Unity3D大风暴之入门篇(海量教学视频版)
智画互动开发团队 编 ISBN 978-7-121-22242-9 2014年2月出版 定价:79.00元 328页 16开 编辑推荐 长达800分钟的高清教学视频,手把手教会初学者 数个开发案例 ...
随机推荐
- js检测浏览器版本代码,兼容ie11
原文:http://blog.csdn.net/tenkin/article/details/11640165 <script type="text/javascript"& ...
- 【leetcode】Trapping Rain Water(hard)
Given n non-negative integers representing an elevation map where the width of each bar is 1, comput ...
- UPDATE和SELECT嵌套使用
1 2 update a set HIGH=b.NEW from SPEC1 a,tmpDOT b where a.high=b.old
- Xcode中的iOS工程模板
1. Application类型 我们大部分的开发工作都是从使用Application类型模板创建iOS程序开始的.该类型共包含7个模板,具体如下所示. Master-Detail Applicati ...
- Lambda表达式 =>(msdn)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- xp主机用VMware9和10安装Ubuntu12.04后无法进入图像界面
xp主机用VMware9和10安装Ubuntu12.04后无法进入图像界面 备注:虚拟机安装Ubuntu12.04 64位版本 刚开始我用VMware-workstation-full-8.0.3来安 ...
- poj2391,poj2455
这两题本质是一致的: 一般来说,对于最长(短)化最短(长)的问题我们一般都使用二分答案+判定是否可行 因为这样的问题,我们一旦知道答案,就能知道全局信息 拿poj2455举例,对于二分出的一个答案,我 ...
- sencha touch tabsidebar 源码扩展
先上图看效果 没错,这是一个sencha touch 项目,而这里的右边推出效果(下文叫做tabsiderbar),使用插件tabsiderbar来扩展的. 插件js下载地址:http://www.m ...
- 2009国家集训队小Z的袜子
莫队算法? 感觉没什么优越性啊?难道就是因为在排序的时候cmp函数的不同?这样做为什么减少时限啊? 我带着疑惑敲了代码,却一直有bug…… 代码: type node=record l,r,id,x, ...
- Centos 下Nginx 自启动脚本
#!/bin/bash #ckconfig: NGINX_PATH=/web/container/nginx- NGINX_COMMAND=$NGINX_PATH/sbin/nginx NGINX_P ...