原理相关

  • 在3D世界中,通过triangles来呈现shape的原因:We use triangles because they provide a fast way for a computer to represent surfaces, they’re pretty simple structures, and we’ve been using them for quite a while, so computer hardware is optimized for them. Now let’s take a look at the simplest kind of meshes...

调试相关

  • 如果是想在触发粒子系统效果的时候播放声音(比如爆炸的特殊发生时也播放声音),则需要将爆炸效果的粒子系统保持为Prefab后,添加Audio Source组件,在组件中添加声音文件并且确保play on awake是开启的:

  • LoadScene之后GI光影发生变化,并且没有重新烘焙。方法为在Lighting面板将最下方的Auto选项取消勾选,并且点一下旁边的build。该错误只在编辑器发生,发布后的产品不会有该问题

  • GameObject对象基本不会通过FindGameObjectWithTag来获取,还可以通过静态变量或者建立一个静态的单例资源管理器来声明Transform变量。其他脚本可以无需搜索直接获取主角Transform

  • 获取子弹对象,在速度不快的时候可以通过比较Tag获取:

    	void OnTriggerEnter(Collider other)
    { if (other.tag.CompareTo("EnemyRocket") == 0) {

    如果速度快,就通过射线获取

  • SmoothDamp

Unity协程处理

GameObject和Component的区别: 参考链接

  • GameObject可以理解为一个容器,里面可以包括一个或者多个的component,比如transform就是用来标识3D位置的component。好比GameObject就是一辆车的基本底盘或者框架,轮胎 车门等等就是它的component,这些component都是属于这个GameObject的,component不可能脱离GameObject而独立存在。

  • 所以说transform.gameObject是获取transform这个组件所在的容器对象,而gameObject.transform是获取容量里面的transform组件。

  • GameObject只有非常少的属性和方法,具体的效果还是需要操作容量里面的各个component。若添加了一些自定义的component,我们可以通过GetComponent()获取。

  • 注意,若一个GameObject中多个同类型的的组件(比如一辆车有多个车轮),则GetComponent()会返回第一个组件,GetComponents()会返回组件队列。

  • SetActive是GameObject的启用禁用,enable是GameObject下组件的启用禁用

  • 获取对象的方法解析, 不过这个文档里面说Transform和GameObject有点问题,GameObject应该是Transform组件的容器

  • 获取隐藏的GameObject对象方法

         GameObject[] pAllObjects = (GameObject[])Resources.FindObjectsOfTypeAll(typeof(GameObject));
    foreach (GameObject pObject in pAllObjects)
    {
    if (pObject.transform.parent != null)
    {
    continue;
    } if (pObject.hideFlags == HideFlags.NotEditable || pObject.hideFlags == HideFlags.HideAndDontSave)
    {
    continue;
    } if (Application.isEditor)
    {
    string sAssetPath = AssetDatabase.GetAssetPath(pObject.transform.root.gameObject);
    if (!string.IsNullOrEmpty(sAssetPath))
    {
    continue;
    }
    } Debug.Log(pObject.name);
    }

推荐关注的技术

  • Unity的UI系统,UGUI和NGUI
  • 更多C#知识:数组(List),委托,代理。
  • Vector3下的相关函数,Mathf下的相关函数。
  • 各类Unity范例教程

[Unity3D]引擎学习之注意事项(持续更新中)的更多相关文章

  1. Go语言学习之路(持续更新中)

    菜鸟 Go语言教程 教程(RUNOOB.COM):http://www.runoob.com/go/go-tutorial.html Go全球官网:https://golang.org/ (2018- ...

  2. Unity3d 与 Objective-C 数据交互,持续更新中

    Unity 3D是用于3D游戏编程的语言,它是一个用C\C++编写的强大的库.而在游戏中经常要接入用OC编写的SDK,这就涉及到了Unity3d 和 OC之间的数据交互.XCode是完成兼容C语言的. ...

  3. 北理工机器人队RM视觉组学习参考汇总(持续更新中)

    欢迎大家有意加入北理工机器人队参与到视觉组的工作中.在大家能够正式作为队员参与到视觉组的准备工作之前,北理机器人队需要对各位进行培训.这篇文章主要面向有志于参加机器人队视觉组的同学.同时,欢迎所有对相 ...

  4. 一个C语言萌新的学习之旅(持续更新中...)

    三:计算和类型 一:隐式转换和显示转换 隐式转换:隐式转换指的是自动类型转换,自动向精确,大范围类型转换. 显示转换:例如:(int)3.5*6.0f=18.0f (int)(3.5*6.0f)=21 ...

  5. 痞子衡嵌入式:史上最强i.MX RT学习资源汇总(持续更新中...)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MX RT学习资源. 类别 资源 简介 官方汇总 i.MXRT产品主页 恩智浦官方i.MXRT产品主页,最权威的资料都在这里,参考手 ...

  6. Pig基础学习【持续更新中】

    *本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.* Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的,可以作为MapR ...

  7. java视频教程 Java自学视频整理(持续更新中...)

    视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...

  8. 中国.NET:各地微软技术俱乐部汇总(持续更新中...)

    中国.NET:各地微软技术俱乐部汇总(持续更新中...)   本文是转载文,源地址: https://www.cnblogs.com/panchun/p/JLBList.html by ​史记微软. ...

  9. 史上最全的spark面试题——持续更新中

    史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题   版权声明:本文为博主原创文章,遵循C ...

随机推荐

  1. android 让一个Activity停留几秒后再跳转

    有时候我们需要在某个 Activity 停留几秒种,然后再跳到下一个 Activity.那么这个怎么实现呢? 一个方法是可以使用 Thread 的 sleep 函数,这个我们在 用Handler实现线 ...

  2. linux 命令之grep

    grep主要用来在文件中进行正则查找 通常都会将高亮颜色打开,方便阅读,为grep建立一个别名alias放到.bashrc等文件中: alias grep='grep --color=auto' 最常 ...

  3. WPF系列 Path表示语法详解(Path之Data属性语法)

    示例: XAML(代码A): <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ...

  4. 鼠标/手指相对于元素的坐标(px转百分比)

    鼠标/手指相对于元素的坐标:鼠标或手指当前的位置 - 元素距离文档的位置 px转百分比:px / 文档尺寸 * 100 获取手指触摸在屏幕中相对于元素的坐标(px转百分比): $('#div').on ...

  5. 微信小程序购物商城系统开发系列-目录结构

    上一篇我们简单介绍了一下微信小程序的IDE(微信小程序购物商城系统开发系列-工具篇),相信大家都已经蠢蠢欲试建立一个自己的小程序,去完成一个独立的商城网站. 先别着急我们一步步来,先尝试下写一个自己的 ...

  6. StackExchange.Redis 访问封装类

    最近需要在C#中使用Redis,在Redis的官网找到了ServiceStack.Redis,最后在测试的时候发现这是个坑,4.0已上已经收费,后面只好找到3系列的最终版本,最后测试发现还是有BUG或 ...

  7. JsonPropertyOrder无法为DTO对象进行属性排序

    在项目中,遇到一个问题,无论怎么设置JsonPropertyOrder,都无法正确实现排序功能,问题代码如下: @JsonPropertyOrder(value={"courseId&quo ...

  8. tensorflow学习笔记一:安装调试

    用过一段时间的caffe后,对caffe有两点感受:1.速度确实快; 2. 太不灵活了. 深度学习技术一直在发展,但是caffe的更新跟不上进度,也许是维护团队的关系:CAFFE团队成员都是业余时间在 ...

  9. 《深入理解计算机系统V2》学习指导

    <深入理解计算机系统V2>学习指导 目录 图书简况 学习指导 第一章 计算机系统漫游 第二章 信息的表示和处理 第三章 程序的机器级表示 第四章 处理器体系结构 第五章 优化程序性能 第六 ...

  10. AppBox升级进行时 - Any与All的用法(Entity Framework)

    AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. 属于某个角色的用户列表(Any的用法) 使用Subsonic,我们有两种方法获 ...