为什么要开发插件?

news/2024/5/18 12:24:43 标签: ue5, c++, 游戏程序, 源码软件, 插件

UE5 插件开发指南

  • 0. 前言
  • 1.为什么要开发插件?
    • 1.0.复用
    • 1.1.解耦.
    • 1.2.即插即用.
  • 结语

0. 前言

插件已经开源了,开源地址在:https://github.com/cloudhu/SimpleShop
之前作者犯了一个低级错误,就是没有公开仓库,后来有朋友告诉笔者无法克隆的时候才发现是私有的.
那位朋友刚刚接触到虚幻引擎,所以存在许多问题,即使拿到源码都无法理解其中的原理,也很难进行扩展和维护,因此即使开源了,大家还是很难去使用.
于是笔者还是下定决心要把这个专栏给填上,以一种短平快的问题解答模式来书写,致力于解决一个个开发当中会遇到的小问题,通过这些问题的解决,从而积少成多,达成量变的基础,最终使大家掌握插件开发的技巧.

1.为什么要开发插件?

这个问题实际上是在解答另外一个问题:如何高效的开发项目?
插件介绍中其实已经讲过了,这里更加系统的明确插件开发的必要性,也是以问题和解决问题的模式来重新书写.

1.0.复用

Do not repeat yourself.
程序员要做到高效,就不能重复写相同的代码,如果在多个项目中都有相同的代码,与其一遍一遍重复写,或者复制粘贴相同的代码,为什么不将其提炼成即插即用的插件呢?
比如某公司许多项目都需要使用数据库,这样就会在多个项目中看到许多重复的数据库操作代码,这个时候完全可以封装一个数据库操作代码,开放出API接口给项目调用.那么每当遇到要使用数据库的时候,就可以导入该插件,从而大大增加了开发效率.
不仅如此,如果这个插件比较成熟,在各种开发场景当中都有需求,就可以上架到Epic Games的插件商城,提供给需要的人使用,同时接收用户的反馈进一步迭代优化插件.

1.1.解耦.

当然,插件不仅仅解决了代码复用的问题,也解决了扩展和维护的问题.
插件意味着功能的模块化,模块与模块之间没有耦合,当然这里默认读者已经知道了什么耦合,那么当某个功能需要修改的时候,我们就可以单独修改对应的插件.而不会牵一发而动全身,降低耦合使项目易于维护.

1.2.即插即用.

插件打开了项目开发的方便法门,插件商店就好比是机器猫小叮当的神奇口袋,总能从中找到趁手的工具,作为一款合格的插件,必须要满足即插即用的特性,从而增加开发者的效率.
比如一款传送门插件实现了传送门功能,导入插件后,开发者只需调用一些简单的接口就可以使用了,例如以下API接口可能就是用户需要开箱即用的:

  1. 生成传送门;
  2. 传送到指定坐标;
  3. 销毁传送门.

结语

以后的章节都是以这种形式来书写,非常短平快的方式解决问题,大家对于插件开发有任何疑问可以在评论区留言,后续的篇章中进行解答.


http://www.niftyadmin.cn/n/338563.html

相关文章

HarmonyOS应用端云一体化开发主要流程

图示 主要步骤 序号 阶段 任务 说明 1 创建端云一体化开发工程 选择工程类型与云开发模板 确定工程类型:选择“Application”或“Atomic Service”页签,确定创建的是HarmonyOS应用工程还是原子化服务工程。选择云开发模板,包括通用云开…

opencv 裁剪超大 tif 图像制作深度学习数据集

文章目录 1. 尝试暴力裁剪(24 位)2. 带透明度读取 (32 位)3. 裁剪标签(8 位) 本文只是进行了简单的尝试,未单独处理最右侧、最下侧和右下角区域,且未设置重叠率 若使用 gdal 进行 ti…

FE_VUE路由 细致解读router/index.js的配置

1 安装vue-router插件 安装vue-router,命令:npm i vue-router 【npm i vue-router3】,在main.js 中引入路由文件: import router from ./router, 注意router 不要变且为小写;注册路由(因为main…

const,static关键字,extern“C“用法

static 考虑类的情况 static成员变量 只与类关联,不与类的对象关联,对于类的所有对象只有一份拷贝定义时分配空间不能在类声明中初始化,必须在类定义外部初始化初始化的时候不需要标示为static,可以被非static成员函数任意访问…

如何解决企业数字化焦虑?

数据是一种宝贵的战略资源,其潜在价值和增长速度正在改变着人类的工作、生活和思维方式。在未来,各行各业都会积极拥抱大数据,积极探索数据挖掘和分析的新技术、新方法,从而更好地利用大数据。海量的数据规模、快速的数据流转、动…

【社工】NodeJS 应用仓库钓鱼

前言 城堡总是从内部攻破的。再强大的系统,也得通过人来控制。如果将入侵直接从人这个环节发起,那么再坚固的防线,也都成为摆设。 下面分享一个例子,利用应用仓库,渗透到开发人员的系统中。 应用仓库 应用仓库对于开…

13款JavaScript图像处理库,建议收藏备用

pica: 一个在浏览器中调整图像大小,而不会出现像素失真,处理速度非常快的图片处理库,仓库地址https://github.com/nodeca/picahtml2canvas: 强大的使用js开发的浏览器网页截图工具,仓库地址https://github.…

解决基于kvm的win10虚拟机只识别2个cpu的问题

在使用kvmqemu创建win10虚拟机的时候,发现尽管我在virt manager里面指定了72个vcpu,但是win10里面只识别2个cpu核心的现象。 如图所示: 虚拟系统管理器里面当时是这样设置的: 这个时候,对应的xml文件内,关…