栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

Unity3D知识点

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity3D知识点

1.在使用Canvas中布局组件是得不到修改该后的效果

///官方解释:
///强制所有画布更新其内容。
///画布在帧末尾、即将渲染前执行其布局和内容生成计算,以确保计算基于该帧期间可能发生的所有最新更改。也就是说,在 Start 回调和第一个 Update 回调中,画布下的布局和内容可能不是最新的。
///依赖于最新布局或内容的代码可以调用该方法,以确保它在依赖它的代码前执行。
Canvas.ForceUpdateCanvases() //强制刷新Canvas页面

2.判断对象为空使用其他方式进行优化 参考内容

///普通使用
if (gameObject == null)
{}
///使用优化方法
if (System.Object.ReferenceEquals(gameObject, null))
{}

3.判断对象的标签不使用 “ . ” 来点出Tag()

///普通使用
Gameobject.tag()
///使用优化方法
Gameobject.CompareTag()

4.在性能不敏感的时期主动出发垃圾回收(System.GC.Collect方法),比如在切换场景,暂停游戏时等。

System.GC.Collect()

5.World Canvas

为World  Canvas指定一个Camera,否则它会每帧都执行Camera.Main,而Camera.Main会持续调用Gameobj.Find方法

6.UnityObject的InstanceID

必要情况下,在Dictionary的键中,我们要缓存Unity对象时,使用UnityObject的InstanceID来作为字典的键,而不是直接使用Object的引用。

7.比较

==它是比较的栈里面的值是否相等(值比较)

Equals它比较的是堆里面的值是否相等(引用地址值比较)

Object.ReferenceEquals(obj1,obj2)它是比较的是内存地址是否相等

8.颜色编码和Color之间的转换。待验证

Color color = ColorUtility.ToHtmlStringRGB(strcolor);

private Color GetColor(string colorcode)
{
    Color color;
    StringBuilder sb = new StringBuilder("#");
    sb.Append(colorcode);
    ColorUtility.TryParseHtmlString(sb.ToString(), out color);
    return color;
}

9.在计算向量夹角时总是会得到0~180内 ,参考内容

/// 
/// Determine the signed angle between two vectors, with normal 'n'
/// as the rotation axis.
/// 
public static float AngleSigned(Vector3 v1, Vector3 v2, Vector3 n)
{
  return Mathf.Atan2(
      Vector3.Dot(n, Vector3.Cross(v1, v2)),
      Vector3.Dot(v1, v2)) * Mathf.Rad2Deg;
}

10.在使用Video Player和Audio Source 时没有声音,重置DSP设置为此状态。
>Project Settings>>Audio" />

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901767.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号