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

 
 
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. CF2B The least round way 题解

    都是泪呀...↑ 题目传送门 题意(直接复制了QWQ) 题目描述 给定由非负整数组成的\(n \times n\)的正方形矩阵,你需要寻找一条路径: 以左上角为起点, 每次只能向右或向下走, 以右下角 ...

  2. **CodeIgniter-cURL扩展

    Work with cURL easily from your CodeIgniter application. Tweet Contributor : philsturgeon Email : Lo ...

  3. 【58沈剑架构系列】互联网公司为啥不使用mysql分区表?

    缘起:有个朋友问我分区表在58的应用,我回答不出来,在我印象中,百度.58都没有听说有分区表相关的应用,业内进行一些技术交流的时候也更多的是自己分库分表,而不是使用分区表.于是去网上查了一下,并询问了 ...

  4. 【LOJ】#2447. 「NOI2011」兔兔与蛋蛋的游戏

    题解 对于75分来说,操作肯定不会成环,可以暴搜 看成空格在移动,空格移动到原来的位置肯定经历了偶数个格子,但是操作的人是两个不同的人,所以肯定不会成环 对于满分做法,要找到一种更好的方式判先手是否会 ...

  5. python IDE之sublime真是个好东东

    简捷轻爽,代码自动补齐.很好用. python3 { "shell_cmd": "python3 -u \"$file\"", " ...

  6. python opencv入门-形态学转换

    目标: 学习不同的形态操作 例如 腐蚀.膨胀.开运算.闭运算 等. 我们要学习的函数有 cv2.erode(),cv2.dilate(),cv2.morphologyEx() 等. 原理 :一般对二值 ...

  7. JS日期、时间 格式化转换方法

    Date.prototype.format = function(fmt) { var o = { "M+" : this.getMonth()+1, //月份 "d+& ...

  8. ref:LDAP入门

    ref:https://www.jianshu.com/p/7e4d99f6baaf LDAP入门 首先要先理解什么是LDAP,当时我看了很多解释,也是云里雾里,弄不清楚.在这里给大家稍微捋一捋. 首 ...

  9. 20172304 实验二 《Java面向对象程序设计》 实验报告

    20172304 实验二 <Java面向对象程序设计> 实验报告 课程名称:<程序设计与数据结构> 学生班级:1723班 学生姓名:段志轩 学生学号:20172304 实验时间 ...

  10. 三、redis系列之事务

    1. 绪言 Redis也提供了事务机制,可以一次执行多个命令,本质是一组命令的集合.一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞.但Redis对事务的支持是部分支持 ...