自己记录一些东西,转载请良心注明出处。

 
 
1.如何同时打开两个UNITY3D项目。
有时候需要对比,或者需要添加另一个项目的某资源到目前项目,同时打开两个项目看起来会比较明了。如果直接打开的话,发现它说有重复项目已经被打开而提示错误不能打开。
 
此刻就需要设置一些unity preferences了,从edit处打开。勾上下图红圈圈就可以了,always show project wizard(打开项目前永远显示项目向导)。选完这个之后每次打开就会让你选择项目路径了。
 
如果需要同一个项目打开在两个UNITY3D的话,那么需要下载不同版本的UNITY3D。
 
 
2.collider的碰撞检测,即便是在collider里面也一样触发。
上图是测试,原本所有面包都在蓝色方块上,有事件当面包触发到COLLIDER的时候会自动飞出。我动态生成了一个COLLIDER来包着面包,所有面包飞出。

3.

transform.rotation获取出来的是四元素的值。
假设需要获取在transform面板上的旋转值,需要获取其欧拉角transform.eulerAngles。
 
4.判断三维向量是否为空
方法1:TestVector3.magnitude == 0
方法2:TestVector3 == Vector3.zero
 
5.计算反射向量,vector3有自带方法。
Debug.Log(Vector3.Reflect(new Vector3(1.0f,0.0f,1.0f),new Vector3(0.0f,0.0f,1.0f)));
 
6.
C# 不支持动态数组,用 ArrayList 可以实现动态数组的功能。
 
7.
UNITY引擎中,外部类不能直接调用Editor里面的类,但是Editor里面的可以直接调用外部类。
 
8.
collider.transform,gameobject.transform,componnet.transform都是它们绑定之上的gameobject的transform 。
 
9.
Vector3.one其实就是标准向量(1.0f,1.0f,1.0f)
 
10.
有时候发现子物体乱飞,不受坐标控制。那么很有可能是因为其父节点的相对坐标问题。
 
11.
application.datapath在编译后的模式也是可以用。
 
12.构造以某向量为轴的旋转某角度的旋转向量。UNITY自带有四元素旋转矩阵方法。
// Sets the transforms rotation to rotate 30 degrees around the y-axis
vecRotation = Quaternion.AngleAxis(30, Vector3.up);
//use it
vecAim = vecOrgin * vecRotation;
 
13.关于3DMAX的单个模型小块全部在UNITY3D里面都被转-90度的问题
因为3DMAX傻逼用右手坐标系……
.FBX都会这样,导出.3DS就没什么问题。
主要是怕程序出错,很容易出错。
 
 
 
17.关于UNITY3D自带的ASSET SERVER
这玩意虽然简单易用,一旦操作失当(很容易失当)。当场景资源多的时候,有时候会直接替换资源。UNITY3D是会将这两个玩意辨认为不同的同名文件。会改掉本地或服务器相应目录的名字。多几次之后你就会傻眼了。
所以如果可以还是用SVN或者其他专业点的版本管理器好。
 
18.关于DontDestroyOnload
DontDestroyOnload的物体要保证它不被加载第二次,不然再进入这个场景就会再多一个。
所以最好能动态生成,在生成之前检验一下它是否存在。若不存在,再添加这个物体。
 
19.关于粒子的淡入和淡出
如下面两个图,在粒子系统的面板中,有COLOR OVER LEFTTME,里面可以拉多个透明度的点。

20.项目备份要及时
UNITY3D有时会犯一些你压根不知道怎么出来的编译BUG,重新拉个项目就会正常。
 
21.不同机器上,游戏的操作感觉不一样。
一般不同机器它的帧数是不一样的,假设UPDATE里面加了移动但没有加入时间参数,则会造成帧数不一样它的运动情况则不一样。若有的加了,有的没加,那么呵呵,效果更加糟糕。所以相关计算要加入时间参数。
 
 
25.Tiling和Offset
每张材质图片都具有的属性。
Tiling 指的是取当前图片的大小(vector2 0~1 比例的值)
Offset 指的是当前图片UV的值(vector2 0~1 比例的值)
相对应的代码为
renderer.material.mainTextureScale = new Vector2(x,y);
renderer.material.mainTextureOffset = new Vector2(x,y);
 
 
26.读取TXT问题
可能很多人没有了解过,其实U3D是可以直接读取TXT的。
查询一下TextAsset就知道了。
 
27.播放动画的帧实现方式
AnimationState.time是动画的播放时间,可以控制这个时间来实现类似帧的播放方式。
 
28.U3D的例子系统的RENDERER部分有BILLBOARD,有很多种朝向可以选择。
例如要做个一直面向天空或地面的粒子,摄像机只需要往上看和往下看的效果的话,是很好用的。
 
29.
不要忘了LateUpdate()这个函数,这个函数在Update后调用,一般来说像跟踪摄像机的位置变化要写在所有变换之后。用于很好的安排顺序。
 
30.
如果你的项目包涵单机和网络两个部分。
请务必将单机和网络部分分开脚本。不要在脚本里不断做不需要的重复的判断。而且各种联动烦死你。由于开发会进行不断地修改,最好先将单机部分逻辑实现。然后拷贝一份来实现网络部分。假设之后要修改的时候,每次单机和网络都要同步修改。
 
31.
ScreenToWorldPoint的参数vector3(屏幕坐标X,屏幕坐标Y,距离摄像机的世界距离)
 
32.
(NGUI)如果特效人员要在UI上做粒子特效,最好是在已有UI上做,不然搬运是个麻烦的过程。
 
33.
当您的动画播放出现褶皱、破损、奇葩的时候,估计是点受骨骼影响太多了,U3D设置中一个点最多只能受4个骨骼影响。
 
34.
角色模型经常换的情况,需要整理一套很好的方案来适应。不能每次都改绑点和引用,太浪费时间。程序就该做程序做的事情,不要把时间浪费在拖拉资源拖拉引用上。
 
35.
模型莫名期末有很多particle
view*物体。(转)
在3DMAX中当你按下6时候,会弹出particle view窗口。同时会生成一个多余的particle view物体(这个物体在大纲中是找不到的,但当使用Ctrl+A的时候,他就会被选到,而且这个物体会占用一定的文件空间),在导出时particle view会严重扰乱物体的轴心。
决方法很简单,只要在max导出之前,按下f11键,进入max的脚本编辑器,输入delete $'particle view*',回车,此时下一行会提示有几个particle view被删除了。看到这个数字即可以放心导出了。 
 
36.
尽量用四元数旋转,因为欧拉角会有死锁现象。
 
 
37.
因为hashtable具有装箱和拆箱的操作,所以dictionary的效率要优于hashtable。
ArrayList在数量少的时候效率跟List<>差不多,多的时候(几万以上)要比List慢不少。
 
38.
SkyBox的使用方式:
import进skybox的官方内置package,然后在摄像机上加Component/Rendenrer/SkyBox的脚本。
在面板中将skybox的材质拖到脚本的public材质对象就好了。

Unity3d操作的一些技巧知识点和BUG解决方案的更多相关文章

  1. 使用Unity3D的50个技巧

    使用Unity3D的50个技巧 刚开始学习Unity3D时间不长,在看各种资料.除了官方的手册以外,其他人的经验也是非常有益的.偶尔看到老外这篇文章,觉得还不错,于是翻译过来和大家共享.原文地址:ht ...

  2. (转)防止人为误操作MySQL数据库技巧一例

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://oldboy.blog.51cto.com/2561410/1321061 防止人 ...

  3. 浅谈Notepad++选中行操作+快捷键+使用技巧【超详解】

    Notepad++选中行操作 快捷键 使用技巧 用Notepad++写代码,要是有一些重复的代码想copy一下,还真不容易,又得动用鼠标,巨烦人.... 有木有简单的方法呢,确实还是有的不过也不算太好 ...

  4. 用Vue实现状态列表的操作涵盖所有的知识点

    用Vue实现状态列表的操作涵盖所有的知识点

  5. 你所不了解的javascript操作DOM的细节知识点(一)

    你所不了解的javascript操作DOM的细节知识点(一) 一:Node类型 DOM1级定义了一个Node接口,该接口是由DOM中的所有节点类型实现.每个节点都有一个nodeType属性,用于表明节 ...

  6. PHP操作Redis常用技巧

    这篇文章主要介绍了PHP操作Redis常用技巧,结合实例形式总结分析了php针对redis的连接.认证.string.hash等操作技巧与注意事项,需要的朋友可以参考下 本文实例讲述了PHP操作Red ...

  7. JQuery表格操作的常用技巧总结

    JQuery对表格进行操作的常用技巧. 1.表格奇数行和偶数行分别添加样式 复制代码代码如下: $(function(){  $('tr:odd').addClass("odd") ...

  8. Ext1.X的CheckboxSelectionModel默认全选之后不允许编辑的BUG解决方案

    Ext1.X的CheckboxSelectionModel默认全选之后不允许编辑的BUG解决方案,ext 的CheckboxSelectionModel在后台默认选中之后,前台就不允许编辑的bug是存 ...

  9. 为什么我没有拔出钥匙 ——开锁引发的程序bug解决方案的思考

    http://blog.csdn.net/wojiushiwo987/article/details/8851204为什么我没有拔出钥匙                             ——开 ...

随机推荐

  1. SQL语句资料

    --语 句 功 能  --数据操作  SELECT --从数据库表中检索数据行和列  INSERT --向数据库表添加新数据行  DELETE --从数据库表中删除数据行  UPDATE --更新数据 ...

  2. MySQL学习笔记:repeat、loop循环

    一.repeat循环 # ---- repeat ---- DELIMITER $$ CREATE PROCEDURE test_repeat() BEGIN ; REPEAT ; UNTIL a E ...

  3. HTML/CSS权值继承

    <style type="text/css">p{color:red;}.first{color:green;}/*因为权值高显示为绿色*/ span{color:pi ...

  4. sql结合通配符来自定义转义字符

    1.使用   ESCAPE   关键字,定义转义符.在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符.例如,要搜索在任意位置包含字符串   5%   的字符串,请使用:      WHER ...

  5. 第1天:Django框架简介与工程创建

    Django简介 Django特点 环境搭建 创建工程 启动服务 使用pycharm打开工程 创建子应用 Django简介 Django,是用Python语言写的开源web开发框架,并遵循MVC设计. ...

  6. iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图

    iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图 使用ios9中的开关.滑块控件 开关和滑块也是用于和用户进行交互的控件.本节将主要讲解这两种控件. ios9开关 开关控件常用来控制某个功能的 ...

  7. 神经网络与BP神经网络

    一.神经元 神经元模型是一个包含输入,输出与计算功能的模型.(多个输入对应一个输出) 一个神经网络的训练算法就是让权重(通常用w表示)的值调整到最佳,以使得整个网络的预测效果最好. 事实上,在神经网络 ...

  8. Codeforces Round #494 (Div 3) (A~E)

    目录 Codeforces 1003 A.Polycarp's Pockets B.Binary String Constructing C.Intense Heat D.Coins and Quer ...

  9. [Agc002E]Candy Piles

    [Agc002E]Candy Piles 题目大意 有\(n\)个数,两人轮流操作,可以做以下操作之一: 删掉一个最大的数 将所有数-1 最后取没的人输,问先手是否必胜? 试题分析 直接决策不知道选哪 ...

  10. 【BZOJ-3123】森林 主席树 + 启发式合并

    3123: [Sdoi2013]森林 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 2738  Solved: 806[Submit][Status] ...