该文章持续更新!

  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. Unity 添加鼠标右键事件

    把此类放到 Editor下使用就OK using UnityEngine; using System.Collections; using System.Collections.Generic; us ...

  2. hdu 1498 50 years, 50 colors(二分匹配_匈牙利算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1498 50 years, 50 colors Time Limit: 2000/1000 MS (Ja ...

  3. iOS中UITabelView

    1.概述 继承自UIScrollView,只能显示一列数据,只能纵向滑动.堪称UIKit里面最复杂的一个控件了,使用起来不算难,但是要用好并不容易.当使用的时候我们必须要考虑到后台数据的设计,tabl ...

  4. linux驱动开发:用户空间操作LCD显示简单的图片【转】

    转自:http://blog.csdn.net/changliang7731/article/details/53074616 上一章我们简单介绍了LCD的一些基本原理.当然更深奥的还有,比如gamm ...

  5. Machine Learning系列--L0、L1、L2范数

    今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化.我们先简单的来理解下常用的L0.L1.L2和核范数规则化.最后聊下规则化项参数的选择问题.这里因为篇幅比较庞大,为了不吓到大家,我将这个五个 ...

  6. yum和head一起用,报错“由于管道被破坏而退出”

    当要打印 [yum list ]时, 加上了管道符 以及 head 会出现报错 “由于管道被破坏而退出” 是因为 yum 与 head 连用 存在bug ,如果使用tail 则没有出现 具体什么bug ...

  7. laravel 上传文件到亚马逊 aws s3

    参考: https://github.com/aws/aws-sdk-php-laravel https://www.jianshu.com/p/e48d82bff20b

  8. GPS位置模拟-安卓

    测试定位功能时都需要位置模拟,一般有如下3种方式: a)手机上安装第三方模拟软件:需要Root: b)PC模拟其中运行app并模拟位置:不能在真机上运行,手机兼容性不能测试到: b)在app中让开发增 ...

  9. C++中求类的大小

    今天刷题时看到一题,是求类的大小的,其中涉及了内存的一些知识,记录一下. 正确答案是12和9 首先是内存对齐原则,可以参考这篇博文:http://www.cppblog.com/snailcong/a ...

  10. radis相关操作

    redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...