unity3d中的坑和解决方案
unity3d是一个很牛x的引擎,当然其也有一些东西是不太好或者说不习惯的,下面列举一些:
1、制作特效时,使用animation记录的位置是相对位置,如果直接放到别的节点下会出问题;
解决方法:在特效根节点的上一层加上一个transform是(0,0,0) (0,0,0)(1,1,1)的父节点,之后再使用和处理父节点
2、使用NGUI制作界面时,ui特效会有位置对不上的问题(美术不会用ngui,使用原始的模型+材质贴图的形式来做特效)
解决方法:让美术将特效直接做到ui上面
3、美术制作的特效导出时丢失材质和贴图
解决方案:要求美术在建模时不准挂材质,所有的材质不使用自动生成的,而是在unity里面新建、挂接,程序也可以提供删掉默认材质的编辑器扩展插件 (assetImporter as ModelImporter).importMaterials = false;
4、多人间合作时的文件共享和版本控制
解决方案:1》Edit->Project Settings->Editor 打开 meta files 2》meta文件和原始文件一起同步 3》checkout时 按住 左边的alt键或option键
5、文本化场景文件
解决方案:edit----project setting ----editr 将Asset Serialization 的 mode 设置成Force Text
6、ngui的界面元素无法响应
解决方案:制作ui时注意设置摄像机的eventReceiverMask的层为对应的层
7、摄像机看不到ui
解决方案:将ui的层设置为摄像机对应的渲染的层
8、脚本中start和update等函数不能继承
解决方案:将这几个函数内的逻辑抽象成函数,之后子类中继承这些函数
9、脚本调用时因为空引用而崩溃
解决方案:所有初始化工作写在start中,所有功能写到update中,如果仅执行一次,可以加个bool型的开关 10、等待某个特效播完
解决方案:可以使用coroutine来等待
11、跨平台动态加载贴图、音频
解决方案:使用www
12、周期性的活动,如每4拍换一个舞步
解决方案:当前时间/周期 减去整数部分,与0.5比较
13、换装重新组织SkinnedMeshRenderer的sharedMesh时骨骼对不上
解决方案:所有avatar的部件的骨架设置要一模一样
14、减少动作文件的大小
解决方案:游戏开始时动态的将animation加到mesh上面
15、全局功能需要多处调用
解决方案:将全局功能直接挂到程序节点ProgramRoot上,使用时直接 GameObject.Find("ProgramRoot").GetComponentInChildren
16、GameObject.Find找不到隐藏的节点
解决方案:定义public GameObject 属性,之后在编辑器里面拖拽
17、各个界面间数据的共享
解决方案:创建单独的GameWorld等数据模型模块,并统一实现序列化和反序列化
18、分时的状态逻辑 解决方案:coroutine加配置表
19、灵活的object的属性
解决方案:Dictionary<string, string> propsTable;
20、灵活的事件响应回调
解决方案:统一继承BaseCallBack,里面写具体的逻辑
21、渲染暂停时实现动态效果
解决方案:Time.timeScale = 0f; 程序通过 Time.realtimeSinceStartup来手动实现特效效果
22、炫酷的显示得分
解决方案:每一位数字用一张数字的贴图来实现
23、ui特效阻碍ui的响应
解决方案:调整z值,使特效在ui的后面
24、特殊的运动轨迹和手感 解决方案:用animation编辑器做成动画来播放
相关推荐
本文将详细介绍Unity3D中常见的问题以及相应的解决策略。 1. 制作特效时的位置记录问题: 在Unity3D中,特效制作时若使用Animation记录,位置是相对的。这导致特效在移动到其他节点下时可能出现位置偏移。解决方法...
在Unity3D开发中,尤其是针对...总的来说,Unity3D中的无缝地形场景切换涉及到了场景管理、碰撞检测、资源加载等多个方面,通过巧妙地组合使用Unity3D提供的工具和概念,可以实现流畅的游戏体验,同时优化内存使用。
cC#+Unity3D游戏源码.zipC#+Unity3D游戏源码.zipC#+Unity3D游戏源码.zipC#+Unity3D游戏源码.zipC#+Unity3D游戏源码.zipC#+Unity3D游戏源码.zipC#+Unity3D游戏源码.zipC#+Unity3D游戏源码.zipC#+Unity3D游戏源码.zipC...
Unity3D是一款强大的跨平台游戏开发...无论是新手还是资深开发者,这些资源都将提供宝贵的知识和支持,助你在Unity3D的开发旅程中取得成功。记得持续更新你的知识库,因为Unity3D的每个新版本都会带来新的特性和改进。
Unity3d常用中文字体 Unity3d常用中文字体
Unity3D开发数据安全及反编译解决方案.pdf Unity3D开发数据安全及反编译解决方案.pdf Unity3D开发数据安全及反编译解决方案.pdf Unity3D开发数据安全及反编译解决方案.pdf Unity3D开发数据安全及反编译解决方案....
Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于2D、3D游戏、虚拟现实(VR)和增强现实(AR)项目的制作。该引擎以其易用性、高效性和丰富的资源库受到开发者们的喜爱。"Unity3D中文手册"是专为国内用户提供的官方...
WinForm 和 Unity3D 互操作是指在 WinForm 中嵌入 Unity3D 场景,并让二者相互通信。这种技术可以让开发者在 WinForm 应用程序中嵌入 Unity3D 场景,实现更加丰富的用户体验。 在实现 WinForm 嵌入 Unity3D 场景时...
Unity 3D 实验报告知识点 一、基本概念 1. Unity 3D 介绍:Unity 3D 是一个跨平台的游戏引擎,可以用于创建2D、3D游戏、模拟、建筑可视化、产品设计等领域的项目。...5. Unity 3D 在游戏开发中的优点和缺点
Unity3D 鼠标检测技术 unity 3d 鼠标检测是 Unity 3D 游戏引擎中的一种常用技术,它允许开发者检测用户的鼠标行为,例如点击、悬停、拖拽等,从而实现各种交互式的游戏机制。下面我们将详细介绍 Unity 3D 鼠标检测...
"Unity3D官方中文包"是为了解决英文环境对非英语用户造成的困扰而提供的语言支持文件,尤其对于中国开发者来说,使用中文界面可以提高工作效率,降低理解难度。 该中文包适用于Unity3D 2018.2的某个特定版本。这...
总之,将Unity3D嵌入到WPF程序中,不仅可以创建丰富的交互式用户体验,还能够结合WPF的强大功能和Unity3D的视觉效果。通过合理的通信机制,两个环境可以无缝协作,共同完成复杂的任务。在实际项目中,根据需求选择...
1、Unity3D引用System.Web.DLL打包发布的问题及解决 2、Unity3d中使用HttpUtility,如果直接在plugins中引入 System.Web.DLL的话,在对Unity3d项目打包的时候会报错,在U3D环境中,编译运行一切正常,但在打包发布...
Unity、3D、特效、刀光、卡通、RPG、VFX、战斗、战斗光影、Unity3D、动作特效、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、Unity3D、...
Unity3D中的Profiler分析器是一个强大的工具,可以帮助开发者了解游戏运行时各项性能消耗。分析器能够报告渲染、动画、游戏逻辑等方面的时间消耗百分比。它是从Unity 2.6版本开始引入的,属于Unity专业版的特性。...
在Unity3D中,开发一个打鱼游戏涉及以下几个关键知识点: 1. **场景构建**:首先,你需要创建一个3D场景,模拟海底环境,包括水体效果、鱼类动画、背景贴图等。Unity3D提供了强大的图形渲染工具和粒子系统,可以...
在Unity3D中实现3D照片墙,涉及到的知识点包括场景构建、UI设计、光照处理、纹理贴图、脚本编程以及性能优化等。 1. 场景构建:首先,我们需要创建一个空的游戏对象作为3D照片墙的容器。在Unity编辑器中,可以通过...
### Android:AS与Unity3D之间打包的一些坑及解决方案 #### 一、引言 随着移动互联网的发展,游戏开发越来越受到人们的关注。Unity3D作为一种跨平台的游戏开发引擎,因其强大的功能和良好的兼容性,成为了许多游戏...
本文将对 Unity3D 中的一些常用代码进行总结和解释,帮助开发者更好地理解和应用这些代码。 1. 基本碰撞检测代码 碰撞检测是 Unity3D 中的一个基本概念,在游戏开发中经常需要检测物体之间的碰撞。在这个代码中,...