cocoscreator切割圆形碰撞体步骤如下:
1、首先需要将碰撞体组件拖拽到您的物体节点上,或者点击AddComponent添加碰撞体。
2、在碰撞体组件中,切换到组件的Shape控制页签,并选择Circle选项。circle选项允许您在您的物体中创建一个圆形碰撞器。
3、其中圆形碰撞器有两个可配置项,半径和偏移量。通过设置半径和偏移量的值,可以控制圆形碰撞器的大小和位置。
4、切割圆形碰撞体,可以通过修改半径和偏移量的值来实现。例如,将圆形碰撞器的半径值设置为原来的一半,可以使圆形碰撞器变为半径缩小50%的圆形。
5、如果需要在运行时动态地切割圆形碰撞体,可以使用CocosCreator提供的API来实现。具体实现方式需要根据您的具体需求进行相应调整。
由于硬件性能不足、内存泄漏、图像资源过多、代码逻辑错误等原因造成的。cocos同时播放帧动画卡顿的问题可能是由于硬件性能不足、内存泄漏、图像资源过多、代码逻辑错误等原因造成的,解决方案;
1、对代码进行优化,尽量减少不必要的重复计算和内存占用;
2、使用对象池来管理内存,减少动态分配内存的次数;
3、对图像资源进行优化,使用压缩技术来减小文件大小,使用合适的资源格式;
4、检测并修复代码逻辑错误,如死循环、空指针等等;
5、采用多线程技术,将不必要的计算任务交给其他线程来执行,减少主线程的负担。判断硬件性能是否足够支持同时播放多个帧动画、如何进行内存泄漏检测、图像资源过多是否会对播放帧动画产生影响等等,针对硬件性能问题,可以参考硬件设备的配置要求,选择合适的设备来运行程序,对于内存泄漏问题,可以使用内存泄漏检测工具来发现和解决问题,在制作游戏或动画时,要注意避免使用过多的图像资源,以免占用过多的内存。
如果content里面放的是label,那么label在设置了string之后,高度是会立刻改变的。
可以通过labelnodeheight来重新设置content的大小,以达到动态改变的目的。
支持js。虽然动态语言静态检查弱,小问题不断可能抵消灵活性的优势,但是在目前手游标配热更新的情况下,unity也不方便用c#。对3d的支持还需要很长时间,工具初期版本估计不稳定,资源插件社区这些是减分项。
unity3d第一个项目已经算是完成了,从cocos引擎转过来也有一段时间了,下面列出一些在使用中遇到的坑或者unity3d与cocos2d差异比较大的地方。适合其他引擎转U3D或者纯新手小白,万一有路过的大神请 踩了我这朵野花 指出错误,好好学习天天向上。游戏主要是2D界面,搭配live2d伪3D效果。 我也想做纯3D的可是没有钱啊。
一 版本以及部分插件工具
(1)unity_535p6
(2)UGUI
(3)DoTween
(4)SceneManager
(5)live2d
(6) playerMaker;Anti-Cheat (都已弃用)
二经验总结
(1)分辨率适配
1使用UGUI Canvas Render Mode :Screen space-Camera 绑定摄像机,摄像机采用正交 Orthographic Canvas Scaler:UI Scale Mode 采用 Scale With Screen Size ; Reference Resolution 使用640960分辨率, Screen Match Mode:expand
2部分背景设为11361136 在iphone5,6上依然会有白边,目前解决方案是背景设为11381138。
3建议美术CG与背景出图大小为,10241024(不重要的背景可512512通过拉伸显示)。
(2)资源相关及优化
1尽量使用尺寸为2的次幂 3232,6464 到 20482048,format 采用 compressed 压缩,个别尺寸不好做处理资源又大,可以采用16bit,采用这一方法美术需少使用渐变色,否则会严重色块化。
2 也可直接导入PSD(相当于图集),texture Type 使用Sprite(2D and UI); SpriteMode 使用Multiple, 然后使用 Sprite Editor自动切割,适用某个界面一堆小图。缺点是每次替换PSD需重新切割,改动有可能会使之前自动切割的被重新命名。
3参数需把Generate Mip Maps 选项勾掉,可减少一定大小,这个选项的功能是在3D游戏中视野远近影响物体模糊。
4字体可使用ttf,不需要美术单一出atlas, text控件也支持富文本、描边、阴影等。
5plist不再可用,策划需提供TEXT文本或JSON等。
6音频文件支持AIFF WAV MP3 OGG 。
视屏文件支持MOV MPG MPEG MP4 AVI ASF。
7修改stripping level,通过库剖离来减少DLL的空间大小。
(3)UGUI、脚本、其他控件相关
1一个场景尽量使用一个canvas,需显示不同层级可使用多个摄像机,不同摄像机culling mask不同layer,通过修改摄像机Depth来控制层级关系。
2 live2d比较特殊,如果需要将其他控件置于它的上面,除了用单一摄像机照射外,还需改变Live2d的Z轴与它摄像机Clipping Planes的Far参数。
3需要做屏蔽层,只需创建一个panel 即可,改变它的层级即可屏蔽下方的点击与触摸。
4如果在一个button上添加image等其他控件,其他控件的范围大小也会影响到按钮的点击区域。
5支持帧动画,只需全部选中拖入Hierarchy即可生成。
6U3D粒子系统不支持particle Designer等粒子生成插件,但源生的功能更强,可实现预加热功能。
7动画建议使用自带的animator控件,也可以使用ITween,DoTween,HotTween等一些插件来实现简单的位移变形等。
8如果使用tween类插件,建议使用DoTween,更加类似cocos写法,性能优化等比较好,(NGUI自带itween)。
9注意所有的tween类插件均不支持image sprite单个透明度的变化,只能修改材质透明度,而所有的UGUI image控件共用同一材质,除非每个image单独添加材质。也可通过单独手写脚本来控制透明度变化,需要在update里计算,比较繁琐。
10脚本中一般使用的update有 Update 与FixedUpdate等,update 跟当前帧数相关,fixedUpdate则是物理时间,所以一些物理逻辑要放入FixedUpdate进行。
11想在场景切换后还保持某个GameObject存在使用方法 DontDestroyOnLoad(transformgameObject);
12把一些模型投影到ui上可以用RenderTexture,也可用这个创建小地图、镜相、动态阴影等效果。注意rendertexture消耗比较大。
13unity 50后增加了AudioMixer混音器,可以把所有audioSource输出放入同一音轨,通过这个实现全局音乐开关和音效开关。
14游戏暂停可使用 TimetimeScale = 0。
15使用u3d自带animator编辑动画,动画结束后可添加回调、动画可倒播。通过状态机可完成比较复杂的动画模块,特定情况下的动画需要与脚本同时控制。
163D物理碰撞同样使用于2D,GameObjecr上需添加刚体控件。
17粒子贴图与cocos相似,尺寸大小最好小于6464。
(4)多语言
1简体版与繁体版,通过修改text所挂的ttf来实现,文字尽量在unity里输入,减少贴图上文字的数量,这样只需改变ttf即可实现简体繁体的切换。
2英文版等共存,unity内需要输入的文字全部写在text里,需要写脚本通过key value来读取每个text显示的内容。
3一些界面上的文字不好通过UNTIY输入来替换的(比如IAP礼包等界面),可创建多个不同的prefab,进入场景时候通过区分
语言环境来调用。
(5)与IOS Android 交互
1多语言 通过ApplicationsystemLanguage区分当前设备语言环境。注意:ios9以后Unity通过ApplicationsystemLanguage返回的简体中文和繁体中文都是SystemLanguageChinese,所以需要在ios 上返回当前语言参数给unity。
2ios上显示插屏等会应为Unity 的rootViewController时长改变而造成奔溃或者不显示,需要在调用第三方SDKd出时候添加
UnityAppController appController = (UnityAppController )[UIApplication sharedApplication]delegate;
3Andoird 需要在点击购买后d出屏蔽层,否则点击过快或造成传入的参数改变。提供去除屏蔽的回调,java层在购买和失败后调用。
4iap与兑换码最好写成单例,某些Android渠道要求在一开始调用IAP回调,回复购买只在IOS与google版本中显示,需留好接口在不同渠道中开启或关闭。
5unity使用ARC,ios某些广告低版本SDK未使用,需要在这些广告类中单独添加参数 -fobjc-arc。
三遗留问题
1shader等使用不熟练。
2过场采用sceneManager插件,用GUI实现,如使用UGUI animator如何实现。
3所有按钮点击放大等效果公用一个animator,再触摸屏幕其他区域有可能会使其他按钮响应放大效果。
4Android下手机如果有系统提示或来电,在进入游戏内游戏声音丢失,需重启游戏。
5scorllview背包等因为包含物品数量较少没有使用动态池。
在cocoscreator中,想要让输入框横屏,需要在场景的Canvas节点上设置Fit Height或Fit Width,根据游戏设计选择一个适合的设置。然后,在输入框节点上设置AnchorX为05,AnchorY为1,Position为(0, 0)。这样就可以让输入框横屏显示。
当需要在立起手机时d出输入键盘时,需要在输入框组件中设置KeyboardReturnType为Done或Search,这样在输入完成后点击“完成”或“搜索”按钮时,输入框会自动关闭。同时,在场景中需要监听键盘的d出与隐藏事件,来调整输入框的位置和大小。可以使用ccviewsetResizeCallback来监听窗口大小改变事件,使用ccviewisOrientationLandscape()来判断当前是否横屏。在窗口大小改变时,可以根据当前屏幕宽高比和设计分辨率比例来动态调整输入框的位置和大小,以保证输入框在不同分辨率下都能正确显示。
CCVirtualGridList是基于Cocos Creator ScrollView + Layout 编写的一个具有 虚拟布局特点 的滚动列表控制容器。支持平滑滚动显示大量数据对象,元素可以实现 异步按帧加载 , 保证滚动平滑 。 具有滚动翻页功能 , 自适应宽度显示多列 , 单项选择 , 局部更新 等实用功能。
Cocos Creator 引擎中提供了一个常规的滚动控制容器——ScrollView,实现基本滚动控制。但是缺少与之配合的List控件来实现虚拟布局功能,需要开发者手动扩展,在这里就提供一个实现虚拟布局功能的扩展列表控件,是参照Egret中的List控件的接口方式来实现。
虚拟布局的原理其实很简单,就是只加载和显示可视区域的列表内容,可视区域外的并没有实体控件被实例化。以滚动事件驱动,动态滚动并复用可视区域内的列表模板,切换数据显示,看上去像一个完整的列表在上下滚动,由于此种设计实例化控件少,所以内存占用极少,drawcall数量低而且稳定,所以现在被普遍应用。但是虚拟布局的核心不仅在于此,由于需要不停地切换显示内容,如何将素材转换的更快速,更平滑才是虚拟列表的关键。CCVirtualGridList在VirtualGridListBaseItem 中提供自己的加载的方法——loadImage,实现异步按帧加载,保证列表滚动流畅度,又能有效利用缓存。
使用控件非常简单,只需要拷贝demo项目中三个文件VirtualGridListprefab,VirtualGridListjs,VirtualGridListBaseItemjs 到您的工程中Prefabs文件夹中即可。使用之前将VirtualGridListprefab拖入画面中, 列表单元控制组件继承 VirtualGridListBaseItem 就可以。
启动参数可以在creator 图形化界面填入,但是为了不受预制体的维护影响,建议通过初 始化脚本接口传入启动参数。
首次创建显示列表, dataList为数据数组
追加显示列表, dataList为追加的数据数组,适用于滚动翻页
获取数据数组
获取显示对象列表
清空列表
根据数据对象查找对应的显示对象,当开启虚拟列表的时候,返回对象可能不存在
获取缓存
注册滚动至底部回调方法 当useVirtualList=false 时不可用
修改数据后,刷新列表显示,some代表指定刷新的对象, 不传则刷新全部。
判断是否滚动至顶部
滚动至顶部
滚动到固定位置 itemIndex代表滚动至指定显示对象的索引, sec为滚动动画时长
数据对象。来自要显示的数据列表中的一条,每一条显示单元控件,都对应一条数据对象,当useVirtualLayout= true 的时候,单元控件对应的data数据对象不固定,会滚动切换。
子类可覆盖方法,自定义显示方法,当滚动交替或初始化的时候触发。当useVirtualLayout= true 的时候,每一个显示单元控件都是滚动复用的,所以对应的Component组件也是复用的,所以不要在其内部记录与某一条数据对应的变量或属性。
获取现实对象在队列中的索引
子类可覆盖方法,点选触发事件,只支持单选
子类可覆盖方法,如果当前为选中状态,当其他单元被点选触发此事件
子类可覆盖方法,当控件滑动离开可视区的时候触发 当useVirtualList=false 时不可用
子类可覆盖方法,当控件滑动进入可视区的时候触发 当useVirtualList=false 时不可用
VirtualGridList 提供的异步加载, 自动缓存。pic: 地址, cb: 加载后的回调方法,thisObj: 回调方法this对象
以上就是关于cocoscreator怎么切割圆形碰撞体全部的内容,包括:cocoscreator怎么切割圆形碰撞体、cocos同时播放帧动画卡顿、CocosCreator ScrollView content大小动态改变等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)