zoukankan      html  css  js  c++  java
  • Unity随手机

    该文章持续更新!

    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. 射线探测物体参考代码:
       1 void OnTriggerStay(Collider other) {
       2     if (other.gameObject == player) {
       3         Vector3 relPlayerPos = player.transform.position - transform.position;
       4         RaycastHit hit;
       5 
       6         if (Physics.Raycast(transform.position, relPlayerPos, out hit)) {
       7             if (hit.collider.gameObject == player) {
       8                 lastPlayerSighting.position = player.transform.position;
       9             }
      10         }
      11     }
      12 }
      射线探测物体参考代码
    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<> 进行遍历并在遍历过程中,将符合条件元素移除掉参考代码:
       1     public List<string> assetBundleName;
       2     private Dictionary<string, WWW> wwwDownloading = new Dictionary<string, WWW>();
       3     private int maxCount                           = 4;
       4 
       5     // Update is called once per frame
       6     void Update () {
       7 
       8         // 遍历并将符合条件的直接移除
       9         foreach (var item in wwwDownloading)
      10         {
      11             if (item.Value.isDone)
      12             {
      13                 item.Value.assetBundle.Unload(true);
      14                 item.Value.Dispose();
      15                 wwwDownloading.Remove(item.Key);
      16             }
      17         }
      18 
      19         // 遍历并将符合条件的直接移除
      20         foreach (string s in assetBundleName)
      21         {
      22             if (wwwDownloading.Count < maxCount)
      23             {
      24                 Load(s);
      25                 assetBundleName.Remove(s);
      26             }
      27         }
      28     }
      29 
      30     void Load(string abName)
      31     {
      32         WWW www = WWW.LoadFromCacheOrDownload(abName, 0);
      33         wwwDownloading.Add(abName, www);
      34     }
      遍历 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
  • 相关阅读:
    分布式数据库中间件Mycat百亿级数据存储(转)
    大文本字符串滤重的解决方案(转)
    java处理大文本2G以上
    Mysql binlog详解
    varnish squid nginx比较
    java运行时内存分类
    redis rdb aof比较
    LeetCode 94 ——二叉树的中序遍历
    线性代数之——向量空间
    线性代数之——A 的 LU 分解
  • 原文地址:https://www.cnblogs.com/tongy0/p/7488701.html
Copyright © 2011-2022 走看看