首页 > 其他分享 >Cocos Creator 常见错误排查方法

Cocos Creator 常见错误排查方法

时间:2023-11-23 09:57:01浏览次数:35  
标签:Cocos Creator 修正 ts 接口 排查 组件

Cocos Creator 新手开发的时候经常会遇到一些错误不知道如何解决,今天把这些错误总结一下,下次遇到的时候,自己知道如何分析。

对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。

到底谁为null或undefine

我们在使用Cocos Creator开发的时候,运行游戏项目,经常会遇到这样的问题:

at OneOffInvoker.invoke (component-scheduler.ts:143:14)

at ComponentScheduler.startPhase (component-scheduler.ts:455:27)

at Director.tick (director.ts:702:37)

at Game._updateCallback (game.ts:929:22)

at updateCallback (pacer-web.ts:65:26)

对应的代码如图:

如果你是初学者而言,你可以尝试翻译一下这个错误,很多初学者会这样翻译:当前这个对象里面运行的时候没有getComponent这个方法,所以会报错。对应到到代码就是this.img对象里面没有getComponent这个方法。

同一个代码打印有时候有值,有时候为null

初学者还会遇到一个问题,同一个代码,同一个打印,有时候值是正常的,有时候打印出来值是不对的,如图所示:

代码第15行,同样是打印 this.img, 有时候能出来打印Node, 数据正常,有时候为null,这个是怎么回事呢?很多初学者就会怀疑人生了,其实这个时候往往是一个组件类的N个实例导致的,都会跑update的打印代码,但是由于他们是不同组件实例,所以导致数据不同,一个组件实例的数据是正常的,一个是异常的,我们只要找出异常数据的组件实例就可以了,如何找呢?打印一下组件所在节点的名字,看下这个错误异常数据的节点的名字是谁就可以了。如下图所示:

报错的组件实例所在节点是audioNode, 正常的是camera节点,这样你就知道是哪个节点上挂的组件实例数据异常与报错了。

学会查看接口API

很多初学者写代码,不学无术, 基础知识也不详细的学一下,拿起网上随便一个案例,就像大牛一样的跟着敲起来,美其名曰”做项目, 只有做项目才是真实的实战,能加快学习速度”。这个学习方法对于程序代码新手而言是我见过最慢的学习方法,没有之一。我们在学习Cocos Creator每个组件的时候,要对着它对应的接口文档,去看去学习,把大部分的接口在脑袋里面都过一遍, 同时遇到新的版本的cocos creator,接口有变化的时候,也渠道API接口,然后仔细阅读每个接口的功能与参数名字。

比如Node类型的接口: setParent

接口名字setParent, 从英文单词,就能知道,设置节点的父亲节点

每个参数的作用,都在.d.ts里面详细的说明了,每次我们学习的时候,对着这些参数与说明看一遍,加深一下基础知识的理解。

再来看一个接口变化的例子,当我们用systemEvent的时候在新版本的Cocos Crator里面会有如下的提示,表示接口已经移除了不能用了:

修正很简单,还是老方法,转到接口定义,如图:

明确的告诉我们修正这个过时API的方法:

修正systemEvent, 使用 input修正;

修正SystemEvent, 使用Input 修正;

修正SystemEvent.EventType, 使用Input.EventType修正

所以修正这个过时代码为:

所以学会基于.d.ts 类型接口函数查看的方法,能帮助我们更轻松的学会API的使用,以及相关API升级。

今天的Cocos Creator 排错就分享到这里,关注我分享更多的游戏开发技巧。

标签:Cocos,Creator,修正,ts,接口,排查,组件
From: https://www.cnblogs.com/bycw/p/17850889.html

相关文章

  • Cocos Creator 3.x 如何加载远程图片的详细步骤
    CocosCreator3.x是一款基于JavaScript语言开发的游戏开发引擎,支持跨平台开发,可以在Web、iOS、Android等平台上运行。在游戏开发中,经常需要加载远程图片,比如玩家头像、游戏道具等等。本文将详细介绍CocosCreator3.x如何加载远程图片,并给出代码实现。对啦!这里有个游戏开发交流......
  • Cocos Creator 教程 : 坐标系统
    主要简单讲解下坐标系统,由于Creator是基于Cocos2dx,也就是使用OpenGL的坐标系,即原点在屏幕左下角,x轴向右,y轴向上。然后讲解下本地坐标与世界坐标,最后讲下坐标转换。点击链接加入群聊【unity/cocos交流二群】坐标系基于OpenGL坐标,也就是原点在屏幕左下角,x轴向右,y轴向上。下面讲解......
  • 字字珠玑,想了解Cocos Creator项目结构,看这篇就够了
    一、项目文件夹结构初次创建并打开一个CocosCreator项目后,开发者的项目文件夹将会包括以下结构: 下面我们将会介绍每个文件夹的功能。1.资源文件夹(assets)assets将会用来放置游戏中所有的本地资源、脚本和第三方库文件。只有在assets目录下的内容才能显示在资源管理器中......
  • 关于 Mac 在 cocos creator 中如何使用 FGUI
    先在官方网下载对应的Mac的FGUI,网站如下:https://www.fairygui.com/download之后就一键式的打开就好,在这个界面上 选择自己对应的项目类型,之后创建即可,打开的面板如下: 最后在选择发布就好了,这里发布有两个文件 如果你想重新在打开这个布局的话,就可以在这个后缀名......
  • cocos creator2.1最新熔岩特效Shader注释详解
    今天我们以一个2.1版最新creator材质+熔岩Shader为例子,详细的注解最新的cocoscreatorShader结构, 希望帮助新手搞定cocoscreaetorShader。 先看一下完成的渲染流程图,多看几遍,我们写的Shader代码就是实现红色环节的:  看完了么?啥也不说了,直接上注解:dissolve.effect......
  • Cocos Creator Shader与材质
    Cocoscreator2.1以后引入了3D渲染的底层,所以引入了Shader和材质系统,比如精灵,下面有一个材质, 材质又选了一个Shader;  1: 什么是Shader和材质?   Shader是一种给显卡GPU执行的程序, 是一种绘制算法,显卡的渲染流水线加载Shader代码后,就能够在绘制的时候执行Shader......
  • Cocos Creator Shader与材质
    Cocoscreator2.1以后引入了3D渲染的底层,所以引入了Shader和材质系统,比如精灵,下面有一个材质,材质又选了一个Shader;给大家推荐一个cocoscreator学习+交流 411232577 1:什么是Shader和材质?Shader是一种给显卡GPU执行的程序,是一种绘制算法,显卡的渲染流水线加载Shad......
  • 一次Java内存占用高的排查案例,解释了我对内存问题的所有疑问
      问题现象7月25号,我们一服务的内存占用较高,约13G,容器总内存16G,占用约85%,触发了内存报警(阈值85%),而我们是按容器内存60%(9.6G)的比例配置的JVM堆内存。看了下其它服务,同样的堆内存配置,它们内存占用约70%~79%,此服务比其它服务内存占用稍大。那为什么此服务内存占用稍大呢,它......
  • 细数creator 1.x与2.x的重大区别
    Cocoscreator从1.x到2.x还是有很多改动,今天我总结了一些他们的主要差别。1:取消了DrawNode,取而代之的是cc.Graphic组件:将DrawNode改成了cc.Graphic,这样更贴近组件化开发一些;2:摄像机改动比较大:x默认没有摄像机,而2.x必须要有一个摄像机才能显示;摄像机的实现也做了很......
  • cocos如何绑定参数到编辑器
    很多cocos creator同学不知道如何绑定组件属性到编辑器上,今天我们来教大家如何绑定  1:基本数据属性绑定到编辑器   这个非常简单,模板是属性名字: 默认的值;Is_debug:false,speed:100,2:系统组件类型与节点绑定到编辑器属性名字: {   type:组件类型(cc......