Unity引擎很容易上手,但很少有人对Unity编辑器的功能有全面详细的了解。还有一些非常实用的小功能,日常使用起来比较困难,但是对于提高工作效率却有很大的影响。 一点帮助。
今天我们收集了一些使用Unity3D时遇到的问题的技巧和解决方案,供大家参考。
1.如何同时打开两个UNITY3D项目。
在某些情况下,如果您需要比较或添加另一个项目的资源到当前项目,同时打开两个项目可能会更容易。如果我直接打开它,我会收到一条错误消息,指出已打开重复的项目并且无法打开它。
此时,您需要设置一些Unity首选项并打开它进行编辑。只需选中下图中的红色圆圈即可始终显示项目向导(在打开项目之前始终显示项目向导)。如果选择此项,每次打开项目时都会提示您选择项目路径。
如果您需要在两个UNITY3D中打开同一个项目,则需要下载不同版本的UNITY3D。
2.碰撞体碰撞检测也是在碰撞体内部触发的。
上面的照片是一个测试。原本蓝色方块上面有面包,但是当事件发生并且碰撞器被激活时,面包会自动弹出。当我动态生成一个COLLIDER 来包裹面包时,所有的面包都弹出来了。
3.获取transform.rotation中四个元素的值。
假设您需要获取变换面板的旋转值,并且需要获取其欧拉角transform.eulerAngles。
4. 判断3维向量是否为空。
方法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. 有时你会发现子对象到处乱飞,不受坐标控制。在这种情况下,很可能是由于其父节点的相对坐标所致。
8. 构造一个围绕特定向量旋转特定角度的旋转向量。 UNITY 带有四元素旋转矩阵方法。
//设置变换的旋转为绕Y轴旋转30度
vecRotation=Quaternion.AngleAxis(30, Vector3.up);
//用这个
vecAim=vecOrgin * vecRotation;
9.关于UNITY3D中所有3DMAX模型块旋转-90度的问题。
3DMAX白痴都用右手坐标系……
.FBX 会发生这种情况,但导出到.3DS 没问题。
主要是担心程序会出错,而且很容易出错。
10.关于UNITY3D附带的ASSET SERVER。
这简单易用,但是一旦你出错了(而且很容易出错)。如果场景资源较多,您可能需要直接替换资源。 UNITY3D 将这两个文件识别为具有相同名称的单独文件。本地或服务器上对应的目录被重命名。重复几次,你就会惊呆了。
因此,如果可能的话,我们建议使用SVN或其他专业的版本管理器。
11.关于DontDestroyOnload
DontDestroyOnload 对象不应被第二次加载。否则,进入该场景时将加载另一个对象。
因此,最好动态生成,并在生成前检查是否存在。如果该对象不存在,则添加该对象。
12.关于粒子淡入淡出
如下两图所示,粒子系统面板有一个COLOR OVER LEFTTME,允许您绘制多个透明点。
13、项目必须及时备份
UNITY3D 有时会出现编译错误,我不知道如何解决,但是重新启动项目,问题就会消失。
Unity开发需要多种技能,自己在这个过程中积累相关的开发技能是最有效的。提高工资和福利。
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/85589.html