世界空间(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知识点的更多相关文章

  1. unity3D 知识点随手记

    最近闲来无事,记记unity3D相关的一些知识点吧,也当作笔记存储.转载请标明出处:http://www.cnblogs.com/zblade/ 1.unity是如何调用Start/Awake等相关函 ...

  2. unity3d 知识点随记

    1.transform.translate是增加transform面板相应的数值x,y,z是以本地坐标系为方向:transform.transformdirection是以世界坐标系为方向,可以去测试 ...

  3. Unity3D重要知识点(转)

    Unity3D重要知识点 数据结构和算法很重要!图形学也很重要!大的游戏公司很看重个人基础,综合能力小公司看你实际工作能力,看你的Demo. 1.什么是渲染管道? 是指在显示器上为了显示出图像而经过的 ...

  4. Unity3D重要知识点

    数据结构和算法很重要!图形学也很重要!大的游戏公司很看重个人基础,综合能力小公司看你实际工作能力,看你的Demo. 1.什么是渲染管道? 是指在显示器上为了显示出图像而经过的一系列必要操作. 渲染管道 ...

  5. Unity3d操作的一些技巧知识点和BUG解决方案

    自己记录一些东西,转载请良心注明出处.     1.如何同时打开两个UNITY3D项目. 有时候需要对比,或者需要添加另一个项目的某资源到目前项目,同时打开两个项目看起来会比较明了.如果直接打开的话, ...

  6. Unity3D UGUI中ScrollRect的一些知识点

    需求 这几天在公司里,项目需要将游戏游戏中的2D城堡界面在拉动的时候显示出3D的拉近效果.当时是在Cocos2d-x下实现的.回家的时候自己重新用Unity实现的了一遍. 虽然现在Unity已经到了5 ...

  7. unity3d API知识点随记

    1.transform.translate是增加transform面板相应的数值x,y,z是以本地坐标系为方向:transform.transformdirection是以世界坐标系为方向,可以去测试 ...

  8. 【Unity3D】资源对象、预设、查找对象、组合模式等知识点

    1.解释对象与资源区别于联系,根据官方案例,分别总结资源和对象组织的规则/规律.    下载并查看了Adam和Survival Shooter tutorial两个官方资源案例,这些案例作为资源,可以 ...

  9. Unity3D大风暴之入门篇(海量教学视频版)

    智画互动开发团队 编   ISBN 978-7-121-22242-9 2014年2月出版 定价:79.00元 328页 16开 编辑推荐 长达800分钟的高清教学视频,手把手教会初学者 数个开发案例 ...

随机推荐

  1. DevSecOps 实施篇!系列(二)

    想在自己公司建立 DevSecOps 计划?没问题,企业规模无论大小,都可轻松实现.这里有5个基本的 DevSecOps 原则可以帮助你启动.当然,如果你对 DevSecOps 还不太熟悉,不妨先看看 ...

  2. 关于DataTables一些小结

    最近项目中使用了DataTables,故小结了一下. 导入CSS文件<link rel="stylesheet" href="<%=base %>/js ...

  3. 李洪强iOS开发之代理

    如果A想让控制器B为他做事情 用代理的话 首先: 在A的.h文件中:  其次A的.m中 在控制器的.m文件中: 还是在控制器B的.m文件中 在A初始化的那一刻设置控制器B为A的代理 在B的.m中实现代 ...

  4. 跨平台查询文件时间,如果超过7天,删除该文件(windows和linxu测试过)

    windows调用的是_stat函数,linux调用的是stat函数. #include <time.h> #include <sys/types.h> #include &l ...

  5. vimrc for mac

    " Configuration file for vim set modelines=0 " CVE-2007-2438 " Normally we use vim-ex ...

  6. 使用Spring框架的12个开源项目

    使用Spring框架的12个开源项目 http://www.csdn.net/article/2013-10-14/2817176-open-source-projects-that-use-spri ...

  7. [POJ 1674] Sorting by Swapping

    Sorting by Swapping Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9514   Accepted: 50 ...

  8. 解决angular的post请求后SpringMVC后台接收不到参数值问题的方法

    这是我后台SpringMVC控制器接收isform参数的方法,只是简单的打出它的值: @RequestMapping(method = RequestMethod.POST) @ResponseBod ...

  9. Xcode7下载地址

    XCode 7 7.3.1:https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_7.3. ...

  10. 【转】Android自定义View的实现方法,带你一步步深入了解View(四)

    原文网址: 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到 ...