BeatSaber节奏光剑插件开发官方教程1-创建一个插件模板
原文:https://wiki.assistant.moe/modding/intro
一、简介
Beat Saber 开发环境:unity2018、C#、.NET framework 4.6。
此教程教你如何使用Visual Studio创建一个插件开发模板。
1 下载最新版Visual Studio
2 下载最新插件模板“BS.Plugin.Template.zip”
https://github-production-release-asset-2e65be.s3.amazonaws.com/164500300/d8a9d300-1cd9-11e9-9e97-59fa48084c2c?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190123%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190123T063620Z&X-Amz-Expires=300&X-Amz-Signature=a7bca54f93c7cb3427e0d811d02fc7a96d84b170a819404746183a5592e8ac50&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3DBS.Plugin.Template.zip&response-content-type=application%2Foctet-stream
(或Q群810303476,群文件下载)
二、安装模板
1 打开ProjectTemplates目录
一般路径:C:\Users\<Username>\Documents\Visual Studio 2017\Templates\ProjectTemplates
2 将前面下载的插件模板文件“BS.Plugin.Template.zip”放入ProjectTemplates目录(注意直接放入zip文件,不要解压)
3 打开VS,创建一个新项目,此时你应当可以在C#选项中看到“Beat Saber Plugin Template”,使用此模板创建项目
三、查看代码
在右侧“解决方案”浏览框中,双击“Plugin.cs”来打开代码文件,你应该能看到如下图所示的内容:
画红线的地方表明项目没能找到相关的引用,下面我们添加一下项目引用。
四、添加引用
在右侧的“解决方案”浏览框中右键“引用”,选择“添加引用”
在打开的引用管理窗口中你可以添加一下缺失的dll文件,这些dll一般都在“\<Beat Saber directory>\Beat Saber_Data\Managed”目录中
部分dll文件在游戏的Plugins目录中(也就是说,某些情况下你需要引用通过ModManager下载的dll文件,比如Async Twitch、Beat Saber Utils、CustomUI)
五、编译插件
如果所有引用问题都解决了,你可以试试编译一下(生成解决方案)
编译生成的dll文件就会出现在项目路径的“\Bin\Debug”目录下
将生成的dll文件放入游戏目录下的Plugins目录即可使用该插件了
六、一个简单的插件教程
https://www.cnblogs.com/cation/p/10309157.html
请务必关注我们的公众号获取最新资源和信息:
更多资源在我们的讨论Q群:
810303476
BeatSaber节奏光剑插件开发官方教程1-创建一个插件模板的更多相关文章
- BeatSaber节奏光剑插件开发官方教程2-简单的插件示例
原文:https://wiki.assistant.moe/modding/example-mod 一.在开始之前 1 确保你已经看过教你如何添加插件模板的教程,且你已经使用插件模板创建了一个新项目 ...
- BeatSaber节奏光剑双手柄MR教程
一.物料准备: 1 显卡1060及以上的PC主机 2 HTC VIVE头盔一套(头盔直插显卡上的HDMI接口) 3 1080P摄像头一个(插USB3.0) 4 绿幕一套,能覆盖整个摄像头的可拍摄范围即 ...
- google maps js v3 api教程(1) -- 创建一个地图
原文地址 google maps javascript官方文档:https://developers.google.com/maps/documentation/javascript/ 在创建地图之前 ...
- WordPress插件制作教程(一): 如何创建一个插件
上一篇还是按照之前的教程流程,写了一篇WordPress插件制作教程概述,从这一篇开始就为大家具体讲解WordPress插件制作的内容.这一篇主要说一下插件的创建方法. 相信大家都知道插件的安装文件在 ...
- android 自己创建一个凝视模板
android 自己创建一个凝视模板 作为一名程序猿 不仅要有一个写代码的能力,养成一个良好的编写习惯也是非常重要的. 今天给大家具体介绍一下怎样创建凝视模板,给每一个类和方法都自己手动去凝视信息也 ...
- ArcGIS Desktop python Add-in 创建一个插件
1)创建一个项目 首先创建一个插件项目,本节介绍如何利用向导创建一个插件项目. 创建任何一个ArcGIS插件产品的过程都是一样的. 创建一个Python插件项目包括2个步骤: a) 选择一个插件项目文 ...
- (7)nehe教程1 创建一个OpenGL窗口:
不要用那个nehe ndk了 误人子弟! 转自: 一个窗口,代码可真多啊 http://www.yakergong.net/nehe/ 在这个教程里,我将教你在Windows环境中创建OpenGL程序 ...
- 使用 ADD-ON SDK 开发 基于 Html JQuery 和 CSS 的 firefox 插件入门教程1: 创建一个简单的 Add-on
[本文转载自http://sixpoint.me/942/implementing-simple-addon/] 实现一个简单的插件 教程的这个部分带你使用 SDK 来实现, 运行并打包一个插件. 这 ...
- CodeSmith使用总结--创建一个基础模板
问:为什么要用CodeSmith? 答曰:因为我懒的写. Codesmith是一款非常不错的懒人工具,我也经常会用到,因为它在“重复代码”方面能够节省我们很多时间,并且解除了我们重复繁琐并且乏味的“码 ...
随机推荐
- 设置label中的对齐方式
QLabel.setAlignment (self, Qt.Alignment) 下面查看Qt.Alignment: Qt.AlignmentFlag This enum type is used t ...
- sizeWithFont:方法使用明细
个人总结: Computing Metrics for a Single Line of Text– sizeWithFont: 同下面,换行方式默认取NSLineBreakByWordWrappin ...
- hdu 4055(经典问题)
总是不能正确的将一个大问题变成子问题,而且又找不到状态转移方程. 直接导致这题想了5个小时最后还是无果... 谨记! Number String Time Limit: 10000/5000 MS ( ...
- 滚动监听: bootstrap 的scrollspy
滚动监听 bootstrap 的scrollspy,需要借助.nav样式,活动的部分是加 .active类.本身导航没有position:fixed,需要自己加入 滚动监听.只有滚动和监听,只有默认锚 ...
- Less-mixin函数基础二
//mixin函数 基础使用方法 --包含选择器,example: .test(){ &:hover{ border:1px solid red; } } button{ .test; } / ...
- PAT 1013 Battle Over Cities(并查集)
1013. Battle Over Cities (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue It ...
- Fluent Ribbon 第七步 状态栏
上一节,介绍了StartScreen的主要功能,本节介绍Ribbon的另外一个小功能StatusBar,状态栏是脱离ribbon之外单独存在,可以单独使用的控件 其基本代码定义如下: <Flue ...
- delphi ,安装插件
一.安装 DevExpress52(VCL+Demo+Help+汉化ini)cxGrid技巧:DBGRIDEH 安装:点击devcl52.exe,安装,安装路径到D:\Program Files\Co ...
- centos7.3下使用yum 安装pip
centos下安装pip时失败: No package pip available.Error: Nothing to do 解决方法: 需要先安装扩展源EPEL. EPEL(http://fedor ...
- Android Activity 生成及Activity之间传值
Activity 是Android中重要的组件,每个Activity对应一个界面,如何生成新的Activity,如何在不同Activity传递数值呢. 一. 生成新的Activity,当然要使用Int ...