该文章持续更新!

  1. 协程的返回值必需是 IEnumerator
  2. 协程的参数不能加关键字 ref 或 out
  3. 在函数 Update 和 FixedUpdate 中不能使用 yield 语句,但可以启动协程
  4. yield return 语句不能位于 try-catch 语句块中,但可以位于 try-finally 中的 finally 语句块中
  5. yield return 语句不能放在匿名方法中
  6. yield return 语句不能放在 unsafe 语句块中
  7. UnityScript(即:Unity JavaScript的简称)中字符串的类型为String,而不是string
  8. UnityScript的布尔为boolean,而不是C#的bool
  9. UnityScript中的函数默认访问权限都是public,且所有的默认函数都为虚函数(virtual function),而且不需要加上virtual关键字
  10. 与C#脚本不同,在UnityScript中使用协程时,可以不使用StartCoroutine方法,而是像调用普通函数那样使用协程
  11. 在Unity中,参与 Lightmaps 烘焙的物体必须是静态对象
  12. 在Unity中,v5.x以前版本的 Light 的 GI Mode 在 v5.x 中变更为 Baking
  13. 射线探测物体参考代码:
     void OnTriggerStay(Collider other) {
    if (other.gameObject == player) {
    Vector3 relPlayerPos = player.transform.position - transform.position;
    RaycastHit hit; if (Physics.Raycast(transform.position, relPlayerPos, out hit)) {
    if (hit.collider.gameObject == player) {
    lastPlayerSighting.position = player.transform.position;
    }
    }
    }
    }

    射线探测物体参考代码

  14. Unity 的 Animator 窗口中的一个动画层对应一个动画状态机。一般来说,不同动画层控制身体的不同部分
  15. Unity 设置游戏帧率 Application.targetFrameRate = 30; // 即:设置游戏帧率为30 fps
  16. Unity 设置屏幕不休眠(即:不会黑屏) UnityEngine.Screen.sleepTimeout = UnityEngine.SleepTimeout.NeverSleep; // 即:设置屏蔽不休眠
  17. Unity 设置质量级别 UnityEngine.QualitySettings.SetQualityLevel(2);
  18. C# 判断某个枚举是否有定义 Enum.IsDefined(typeof(ProtoID), iProtoType));
  19. Unity 中 Image 元素是显示精灵,而 RawImage 是显示普通 Texture2D 贴图。因为每一张 RawImage 都会增加一个额外 Drawcall,所以最好只用于一直使用的大尺寸图片(如:与屏幕同等大小的图片)或临时显示的图片
  20. Unity 点光源(Point Light)基于空间中的一点,均匀地向四面八方发送光,光照强度随着距离衰减,最小强度为0
    Unity 聚光源(Spot Light)和点光源一样,也是基于空间中某一点。但不同的是聚光源只在一个角度范围内发出光,所以是一个圆锥形
    Unity 方向光(Directional Light)没有具体的光源位置,所以会对整个场景进行照射。因此,它可以放在任意位置,其效果都一样。也没有照射距离的概念,因为光的强度不会衰减。
    Unity 区域光(Area Light)在空间中以一个矩形展现。光从矩形的一侧照向另一侧,会衰减。注意:区域光非常占用 CPU,所以是唯一必需提前烘焙的光源类型。因为区域光从不同的角度照射物体,所以明暗变化更柔和,可以用来模拟街灯
  21. C# 对 Dictionary<> 或 List<> 进行遍历并在遍历过程中,将符合条件元素移除掉参考代码:
         public List<string> assetBundleName;
    private Dictionary<string, WWW> wwwDownloading = new Dictionary<string, WWW>();
    private int maxCount = ; // Update is called once per frame
    void Update () { // 遍历并将符合条件的直接移除
    foreach (var item in wwwDownloading)
    {
    if (item.Value.isDone)
    {
    item.Value.assetBundle.Unload(true);
    item.Value.Dispose();
    wwwDownloading.Remove(item.Key);
    }
    } // 遍历并将符合条件的直接移除
    foreach (string s in assetBundleName)
    {
    if (wwwDownloading.Count < maxCount)
    {
    Load(s);
    assetBundleName.Remove(s);
    }
    }
    } void Load(string abName)
    {
    WWW www = WWW.LoadFromCacheOrDownload(abName, );
    wwwDownloading.Add(abName, www);
    }

    遍历 Dictionary<> 或 List<> 并将符合条件元素移除参考代码

  22. 在Unity中,常规做法是把矢量放在矩阵的右侧,即把矢量转换成列矩阵来进行运算
  23. 分解基础变换矩阵备忘

    上面(4 x 4)矩阵用来表示平移、旋转、和缩放。注意:把表示纯平移、纯旋转、纯缩放的变换矩阵叫做基础变换矩阵。其中,上面矩阵中的左上角部分  用于表示旋转和缩放,右上角部分的  用于表示平移,左下角部分的  = ,最后一个右下角部分的 1 就是标题 1。
    注意:01) 在绝大多数情况下,我们约定变换的顺序是先缩放、再旋转、最后平移!
              02) 在旋转矩阵过程中,如果给出了分别绕x轴、y轴、z里面旋转的变换矩阵,则在Unity中,旋转的先后顺序为 zxy,即先绕z轴旋转、再绕x轴旋转、最后绕y轴旋转! 这在相关的 API 文档中都有说明。
  24. [Unity Shader]通常,如果需要把一些自定义的数据从顶点着色器传递给片元着色器,一般选用TEXCOORD0等
  25. [Unity Shader]注意:一个语义可以使用的寄存器只能处理4个浮点值(float)。因此,如果想要定义矩阵类型,如:float3x4、float4x4等变量就需要使用更多的空间。一种方法是,把这些变量拆分成多个变量,例如对于float4x4的矩阵类型,可以拆分成4个float4类型的变量,每个变量存储了矩阵中的一行数据
  26. s

Unity随手机的更多相关文章

  1. Unity 根据手机陀螺仪,实现流动UI效果

    Unity 根据手机陀螺仪,实现流动UI效果 设置Canvas 模式设置为 Screen Space - Camera 指定Camera 挂载脚本 挂载Target using System; usi ...

  2. Unity开发 手机平台播放影片

    http://www.cnblogs.com/zhaoqingqing/p/3401747.html 截止到目前的Unity4.2版本,要在手机平台上播放影片,有两种方法: 使用Unity自带的Mov ...

  3. Unity 3D学习之《Unity 3D 手机游戏开发》1

    P10: 设置断点步骤02,在Project窗口右键(是在下图中的红色区域,点右键)选择[Sync Mono Develop Project],打开MonoDevelop编辑器 P11: " ...

  4. unity中手机触摸代码

    #elif UNITY_IOS || UNITY_ANDROID         if(Input.touchCount <= 0)         {             return;/ ...

  5. Unity 播放 视频

    Unity3D 播放视频 http://www.cnblogs.com/fortomorrow/archive/2012/11/01/unity07.html Unity3D研究院之两种方式播放游戏视 ...

  6. Unity响应Android的返回键,退出当前Activity

    一:使用 Application.Quit() public void Update() { if(Input.GetKeyDown(KeyCode.Escape)) Application.Quit ...

  7. C#程序员整理的Unity 3D笔记(十三):Unity 3D基于组件的思想

    如果你接触过<设计模式>.软件架构的编程思想,就会知道优秀的设计准则:“组合优于继承的”. 这句话很简短,但开始学习OOP的时候,真切的是—-不太好理解(以我个人当初学习为例). OOP的 ...

  8. Unity 集成联通SDK

    我相信Unity程序员都会遇到加入SDK的问题,我相信如果你不会android编程,我相信你的CPU当场计算过快而爆炸!  这里也写笔记希望能帮助大家 如果有讲错的地方,希望大家能回复并且提供答案!  ...

  9. unity android相互调用

    简介 有一些手机功能,Unity没有提供相应的接口,例如震动,例如不锁屏,例如GPS,例如... 有太多的特殊功能Unity都没有提供接口,这时候,我们就需要通过使用Android原生的ADT编辑器去 ...

随机推荐

  1. HBase笔记之远程Shell界面命令行无法删除字符的解决方案

    方法一: 设置终端退格键为ASCII 127 在XShell的界面中,设置 文件 --> 属性 --> 终端 --> 键盘 --> BACKSPACE键序列,改为ASCII 1 ...

  2. Ubuntu命令设置ip网关dns

    本文系转载,介绍Ubuntu如何设置IP和网络来连接网络 如果是在虚拟机中使用Ubuntu,那么设置之前请先参照我的上一遍文章虚拟机Net方式设置连接外网中的网络设置部分,先设置好主机的网络,然后配置 ...

  3. photoshop 安装问题

    问题:“安装程序检测到计算机重新启动操作可能处于挂起状态.建议您退出安装程序,重新启动并重试.” 解决: 1.运行 regedit 打开注册表编辑器. 2.依次展开HKEY_LOCAL_MACHINE ...

  4. ubuntu16.04 安装 python3.6, 并创建虚拟环境(使用python3.6)

    ubuntu16.04 安装 python3.6, 并创建虚拟环境(使用python3.6) ubuntu16.04中默认安装了 python2.7 python3 python3.5.2 (注意 : ...

  5. 防范XSS跨站2

    原文:http://blog.csdn.net/joeyon1985/article/details/43527987 在前面的一篇文章中,讲到了java web应用程序防止 csrf 攻击的方法,参 ...

  6. 集合遍历过程iterator, 添加删除元素报异常

    list  set  遍历过程中添加或者删除元素,报异常. 使用iterator 也会报异常 ConcurrentModificationException remove只能用迭代器的remove,而 ...

  7. poj 1041(字典序输出欧拉回路)

    John's trip Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8641   Accepted: 2893   Spe ...

  8. 458. Poor Pigs

    There are 1000 buckets, one and only one of them contains poison, the rest are filled with water. Th ...

  9. 【严蔚敏】【数据结构(C语言版)】 求n的阶乘

    阶乘函数为: 使用递归即可求得. #include <stdio.h> #include <stdlib.h> int Fact(int m){ ) ; ); //递归求阶乘 ...

  10. jvisualvm 远程连接jboss

    由于项目中使用jboss 作为web容器,每当项目上线时需要使用loadrunner对项目进行性能压测,这时就需要实时观察JVM的一些参数.想使用jvisualvm借助jstatd远程连接服务器上面的 ...