前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「游戏引擎 浅入浅出」98.1 SubstancePainter插件开发环境

「游戏引擎 浅入浅出」98.1 SubstancePainter插件开发环境

原创
作者头像
CaptainChen
发布2022-06-29 19:08:10
9940
发布2022-06-29 19:08:10
举报
文章被收录于专栏:游戏引擎 浅入浅出

「游戏引擎 浅入浅出」是一本开源电子书,PDF/随书代码/资源下载:

https://github.com/ThisisGame/cpp-game-engine-book

SP可以使用JavaScript+QtQuick/Python开发插件,不过尝试Python后发现,官方文档例子都是错的,所以还是选择JavaScript开发。

1.打开日志窗口

点击菜单Window-Views-Log,打开日志窗口,方便插件打log做调试。

2.插件目录

点击菜单 JavaScript - Plugin Folder 打开插件目录。

2.编写第一个插件

SP的JavaScript插件,是以文件夹为单位的,文件夹名就是插件名。

在 plugins 插件目录,新建我们的第一个插件目录helloworld,并创建文件toolbar.qmlmain.qml

toolbar.qml描述了自定义按钮的属性,代码如下:

代码语言:javascript
复制
import QtQuick 2.7
import AlgWidgets 2.0
import AlgWidgets.Style 2.0

AlgButton
{
	tooltip: "这是一个按钮,点击会在log窗口输出helloworld"
	iconName: ""
	text: "第一个插件"
}

main.qmltoolbar.qml描述的自定义按钮,添加到工具栏,并指定按钮点击事件,代码如下:

代码语言:javascript
复制
import QtQuick 2.7
import Painter 1.0

// Root object for the plugin
PainterPlugin
{
	// Disable update and server settings
	// since we don't need them
	tickIntervalMS: -1 // Disabled Tick
	jsonServerPort: -1 // Disabled JSON server

	// 插件加载完毕回调
	Component.onCompleted:
	{
		// 将 toolbar.qml 描述的按钮,添加到工具栏
		var InterfaceButton = alg.ui.addToolBarWidget("toolbar.qml");

		// 给按钮加事件
		if( InterfaceButton )
		{
			InterfaceButton.clicked.connect( SayHello );
		}
	}

	function SayHello()
	{
		alg.log.info( "hello world")
	}
}

3.启用插件

SP的插件写好后,并不会立即显示到菜单中,需要先刷新插件列表。

点击菜单 JavaScript-Reload Plugins Folder刷新插件列表,新编写的插件就会出现在 JavaScript 的子菜单中,如下图:

插件默认被启用了,在工具栏就可以看到创建的自定义按钮,鼠标放上去,会弹出自定义tips,点击按钮会输出log。

点击插件菜单 JavaScript-helloworld里面的enable disable,就可以启用或禁用 helloworld插件了。

修改代码后,点击reload,就可以热重载插件。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.打开日志窗口
  • 2.插件目录
  • 2.编写第一个插件
  • 3.启用插件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档