随笔分类 - Unity3D
Unity3D 学习笔记 常见问题解决
摘要:这篇文章从AssetBundle的打包,使用,管理以及内存占用各个方面进行了比较全面的分析,对AssetBundle使用过程中的一些坑进行填补指引以及喷!AssetBundle是Unity推荐的资源管理方式,官方列举了诸如热更新,压缩,灵活等等优点,但AssetBundle的坑是非常深的,很多隐藏细...
阅读全文
摘要:最近开始接手新手引导的开发,记录下这块相关的心得首先客户端是Unity,在接手前,前面的同学已经初步完成了新手引导框架的搭建,这套框架比较简单,有优点也有缺点,稍后一一点评我们的新手引导是由一个个强引导组成的,每个强引导都有一系列的步骤,这套框架实现的功能就是:1.组织一个强引导(任务)所需的步骤,...
阅读全文
摘要:在最近,使用U3D开发的游戏核心部分功能即将完成,中间由于各种历史原因,导致项目存在比较大的问题,这些问题在最后,恐怕只能通过一次彻底的重构来解决现在的游戏跑起来会有接近130-170个左右的DrawCall,游戏运行起来明显感觉到卡,而经过一天的优化,DrawCall成功缩减到30-70个,这个效...
阅读全文
摘要:最近公司准备接入91手机平台的支付系统,这边要实现在安卓上Unity调用Java代码,Unity刚刚上手,Android开发也接触不多,在网上找了不少资料,但都不是很详细,总觉得缺了些什么,经过两天摸索,基本完成功能,所遇问题颇多,在此一一总结1.开发安卓环境的搭建2.关于安卓开发3.Unity调用安卓的各种问题1. 安卓开发环境的搭建,在这里随便装了个Eclipse和ADK那些杂七杂八的,这个是真的很简单,网上的资料非常多,这里我可以很负责任地略过,随便参照网上的一个环境搭建,跑一个安卓的 Hello World,就OK了,下面随便给出两篇作为参考http://game.ceeger.com
阅读全文
摘要:Unity3D使用的是Physx物理引擎,但这里的用法跟纯粹的Physx不一样,这里是由刚体和碰撞体两种组件组成的物理对象。【刚体】 RigidBody 用于物理模拟,有质量,受重力影响,可以和其他可碰撞对象在碰撞的过程中发生相互作用的力,不要在运动中直接操作它们的位置(你要知道这不合物理),要通过施加力的方式来操作它,或者使用Joint刚体的脚本API:http://game.ceeger.com/Script/Rigidbody/Rigidbody.htmlTips:两个刚体的相对质量Mass决定它们之间碰撞之后的表现阻力Drag越大,物体看起来越轻【碰撞器】Collider 用于碰撞检测
阅读全文
摘要:如何导入一个模型,导入的模型在unity3d的project面板中是怎样显示的?包含什么内容?如何加载到场景中?怎样去控制它?模型和动画之间的关系?关于Mesh组件http://game.ceeger.com/Components/comp-MeshGroup.html关于模型的导入http://game.ceeger.com/Components/class-Mesh.html关于动画导入http://game.ceeger.com/Manual/Animations.html关于动画脚本http://game.ceeger.com/Manual/Animation_Scripting.ht
阅读全文
摘要:Input使用这个类能够读取输入管理器设置的按键,以及访问移动设备的多点触控或加速感应数据。这里重点记录一下这几个东西的用法,鼠标,键盘,触摸,重力(陀螺仪)PS.按钮的名字:http://game.ceeger.com/Script/Enumerations/KeyCode/KeyCode.html鼠标:Input.mousePosition表示鼠标当前的像素位置(坐标系如何?以左下角为原点)float GetAxis(string) "Mouse X"和"Mouse Y" 可以获取这一帧鼠标在X,Y上移动的偏移量,正常速度在-1和1之间,快速移动鼠标
阅读全文
摘要:通讯,动态创建,Prefab,销毁通过Hierarchy面板下的Create菜单可以手动地创建一个GameObject,它可以是一个相机,一个灯光,或者一个简单的模型,当我们要在程序里面动态地创建一个相机的时候,可以new一个GameObject,然后把Camera组件Add给它就可以了,创建灯光,GUI等也类似,但要创建简单模型的时候,我发现并没有类似Cube,Sphere这样的组件可供添加,后面知道,通过GameObject这个类的一个静态方法可以达到这个目的static GameObject CreatePrimitive(PrimitiveType type);可以根据Primitiv
阅读全文
摘要:Transform组件用于控制物体的位置,旋转和缩放,这里面涉及两个重点,一个是坐标系,这个包括局部坐标系和世界坐标系的关系,另外一个是父子节点,GameObject的父子节点关系是通过Transform组件来维护的。位置相关的:5个和位置相关的Vector3类型变量up 表示世界坐标的Y轴方向right 表示世界坐标的X轴方向forward 表示世界坐标的Z轴方向position 表示对象在世界坐标系中的位置localPosition 表示对象相对父节点变换的坐标位置void Translate(Vector3 translation, Space relativeTo = Space.Se
阅读全文
摘要:按照我之前的惯性思维,这时候应该抛出一个问题,是不是可以不通过界面,直接new一个脚本出来,呵呵(自嘲,这种想法比new一个Scene更不实际,虽然可以实现~,通过写文件在代码里面写一个脚本,然后动态加载进来)比起new一个脚本,我觉得还是了解一下怎样写一个脚本吧MonoBehaviour是所有脚本的基类,所有要挂载到GameObject之上的脚本,都需要继承这个类,js脚本自动继承这个类,C#需要显式地继承MonoBehaviour,MonoBehaviour提供了一系列函数给我们重写,这里记录一下最常用的一些函数三个Update:Update 在每一帧更新,和游戏逻辑相关的代码,对游戏对象
阅读全文
摘要:Unity3D介绍操作界面的资料多如牛毛,再记录这些,于人于己皆无益,在这里希望可以记录一些有用的东西,供以后有需要时查看要熟悉一个引擎,我觉得有必要把引擎的思想搞清楚,这样学习起来才更好理解吧通过这几天的学习,Unity3D中贯穿着几个重要的概念,GameObject,Component还有Scene,我觉得Unity3D的整个思路,是由这三个概念组合而成的,还有别的吗?对于美术人员来说可能有很多,诸如滤镜,特效,骨骼之类的概念,但对程序人员来说,就这三个概念,或许可以把Scene给干掉,因为我们需要理解最多,用的最多的,也就是GameObject和Component这两个Scene是一个很
阅读全文