Cocos Creator 3D 内有许多独立运行的的进程,这些进程间是相互隔离的。 所以在编辑器内需要与其他功能进行交互的时候,需要通过 "消息" 进行交互。 编辑器里的 "消息系统" 是 IPC(进程间通信)的功能扩展封装。这个系统承担起了整个编辑器内通讯交互的重担。 消息类型 消息交互分成了两种情况: 主动发送某条消息到某个功能(扩展) 某个功能(扩展)完成了一个操作后向所有人发送通知,告知
在编写扩展之前,我们首先需要了解一下 Cocos Creator 3D 内,扩展的基础结构。 Cocos Creator 3D 编辑器是基于 GitHub 的 Electron 内核开发。Electron 是一个集成了 Node.js 和 Chromimu 的跨平台开发框架。 在 Electron 的架构中,一份应用程序由主进程和渲染进程组成,其主进程负责管理平台相关的调度,如窗口的开启关闭,菜单
物理系统(PhysicsSystem)用于管理所有物理相关的功能,目前它负责同步物理元素、触发物理事件和调度物理世界的迭代。 物理世界 物理世界迭代时会对物理元素进行物理计算,比如计算各物体是否产生碰撞,以及物体的受力情况。当计算完成后,物理系统会将物理世界更新到场景世界中,从而使游戏对象产生相应的物理行为。 目前 Cocos Creator 3D 的物理执行流程:触发物理事件 -> 场景同步到物
烘焙系统是通过计算引擎场景中所有光源对物体的影响最终生成光照贴图并在场景中应用的过程,该系统的目的是减少实时光源的运算,从而提高场景运行效率。 创建 开启烘焙系统需要三个步骤: 在顶部菜单栏 Project(项目) 中单击该菜单按钮,在弹出菜单栏中单击Lightmap(光照贴图)按钮,弹出lightmap面板。 在烘焙前需要在编辑器中设置光源组件的Bakeable属性为true(注意:目前只支持一
地形系统以一种高效的方式来展示大自然的山川地貌。开发者可以很方便的使用画刷来雕刻出盆地、山脉、峡谷、平原等地貌。 创建 创建需要两个步骤: 在 Hierarchy(层级管理器) 中点击鼠标右键,在弹出菜单中点击Create(创建)->Terrain(地形)来创建地形节点(地形节点可移动,但不支持旋转与缩放)。 在Assets中点击鼠标右键,在弹出菜单中点击Create(创建)->Terrain(地
TestKit 实例 (Scala) 对于任何软件开发,自动化测试都是开发过程中一个重要组成部分。actor 模型对于代码单元如何划分,它们之间如何交互提供了一种新的视角,这对如何编写测试也造成了影响。 Akka 有一个专门的模块——akka-testkit来支持不同层次上的测试,测试很明显有两个类别: 测试独立的、不包括actor模型的代码,即没有多线程的内容;这意味着给事件发生的次序给定,有完
强烈建议您选择支持依赖关系管理且可以使用发布到“Maven Central”存储库的artifacts的构建系统。 我们建议您选择Maven或Gradle。 可以让Spring Boot与其他构建系统(例如Ant)一起工作,但它们并没有得到特别好的支持。
Spring Boot 2.1.3.RELEASE需要Java 8,并且与Java 11兼容(包括在内)。 还需要Spring Framework 5.1.5.RELEASE或更高版本。 为以下构建工具提供了显式构建支持: Build Tool Version Maven 3.3+ Gradle 4.4+ 2.2.1 Servlet容器 Spring Boot支持以下嵌入式servlet容器: N
在讲解Chrome扩展时我们提到过获取CPU、内存和存储设备信息的方法,具体可以参见5.4节。Chrome应用也可以获取到系统信息,并且与Chrome扩展类似。 Chrome应用可以获取到的系统信息包括CPU、内存、存储设备、显示器和网卡。要获取信息,需要在Manifest中声明相应权限: "permissions": [ "system.cpu", "system.memory"
Chrome提供了获取系统CPU、内存和存储设备的信息,要获取这些信息,需要在Manifest中分别声明如下权限: "permissions": [ "system.cpu", "system.memory", "system.storage" ] 三个接口都提供了getInfo方法以获取信息: chrome.system.cpu.getInfo(function(inf
Foundation 网格系统为 12 列。 如果你不需要 12 列,你可以合并一些列,创建一些更大宽度的列。 Foundation 的网格系统是响应式的。 列会根据屏幕尺寸自动调整大小。在大尺寸屏幕上,可能是三列,小屏幕尺寸就可能是三个单列,按顺序排列。 网格列 Foundation 网格系统有三个列: .small (手机端) .medium (平板设备) .large (电脑设备:笔记本,台
Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API。 Node 导入文件系统模块(fs)语法如下所示: var fs = require("fs") 异步和同步 Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。 异步的方法函数最后一个参数为回调函
为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。 创建模块 在 Node.js 中,创建一个模块非常简单,如下我们创建一个 main.js 文件,代码如下: var
EasySwoole提供了基础的数据校验。 $data = array( "a"=>1, "b"=>array( "age"=>2, "b2"=>null ), "c"=>array( "age"=>3, "b2"=>"asas" ), "URL"=>'http://www.baidu.
为了让开发者能更便捷的调用cURL,easySwoole对cURL进行了封装,先来个例子感受一下 use CoreUtilityCurlRequest; // 获取快递100接口数据 $param = ['type' => 'zhongtong', 'postid' => '457500981717']; $url = 'http://www.kuaidi100.com/query?' . htt