原文:https://wiki.assistant.moe/modding/example-mod

一、在开始之前

  1 确保你已经看过教你如何添加插件模板的教程,且你已经使用插件模板创建了一个新项目

  https://www.cnblogs.com/cation/p/10308764.html

  2 如果此教程中有很多地方你看的一头雾水,那可能是因为你不太了解unity或c#,你需要先学习一些相关的知识

  3 如果你已经学习过了前面的插件模板添加教程,你的当前视图应该是下图这样的:

  4 本教程默认你对c#和unity有基本的了解,如果没有这方面基础的话还请先去学习下基本知识

二、简介

  此教程将会引导你创建一个简单的插件,该插件可以记录我们miss了多少个方块,这个示例插件将包括:

  1 一个包含组件类的空GameObject

  2 TextMeshPro meshes,unity中用来显示文本的实例

  3 events和actions的初步了解

三、设置变量

  在开始之前,我们需要设置一些变量来协助我们的开发工作

enabled 是否进行计数的flag
counterPosition 计数显示在界面中的位置

  如果提示了“Vector3 variable”错误,你需要在代码的最前面添加“using UnityEngine;”

PS:

  可以在OnApplicationStart()函数第一行添加如下代码:

    Console.WriteLine("Hello World!");

  这行代码可以帮助你进行代码的调试,你可以使用--verbose参数启动游戏,这样会伴随游戏启动一个调试窗口,调试窗口会显示异常信息和上述代码中你设置的调试信息。

四、创建一个GameObject

  在“Plugin.cs”文件中我们只需要少量代码。

  “SceneManagerOnActiveSceneChanged()”事件会在游戏场景变化时触发,所以我们可以在这里创建GameObject。

  1 第一行代码做了个是否执行插件的判定,前面我们设置了enabled

  2 第二行代码中判定当前的场景是否是“GameCore”,确保游戏开始时对插件进行初始化,避免在主菜单就初始化插件

  3 第三行代码中MissedCounter报错了,因为你还没创建这个object呢

五、MissedCounter.cs

  创建一个新的class,命名为MissedCounter.cs,并使其继承MonoBehavior。

后面很繁琐了,我直接贴代码出来,完整的代码可以这里下载(MissedCounter-master.zip):

https://github.com/Caeden117/MissedCounter

(或Q群810303476,群文件下载)

如果想知道其他的接口如何使用,可以到github上下载其他的开源插件代码参考。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
using TMPro;
using System.Collections;
using System.Threading;namespace MissedCounter
{class MissedCounter : MonoBehaviour{int counter = 0;private ScoreController score;//private ComboUIController combo;
        GameObject countGO;TextMeshPro counterText;void Awake(){StartCoroutine(GetScore());}IEnumerator GetScore(){while (true){score = Resources.FindObjectsOfTypeAll<ScoreController>().FirstOrDefault();//combo = Resources.FindObjectsOfTypeAll<ComboUIController>().FirstOrDefault();//if (score != null && combo != null) break;if (score != null) break;yield return null;}Init();}void Init(){counterText = this.gameObject.AddComponent<TextMeshPro>();counterText.text = "0";counterText.fontSize = 4;counterText.color = Color.white;//counterText.font = combo.GetPrivateField<TextMeshProUGUI>("_comboText").font;counterText.alignment = TextAlignmentOptions.Center;counterText.rectTransform.position = Plugin.counterPosition + new Vector3(0, -0.4f, 0);countGO = new GameObject("Label");TextMeshPro label = countGO.AddComponent<TextMeshPro>();label.text = "Misses";label.fontSize = 3;label.color = Color.white;//label.font = combo.GetPrivateField<TextMeshProUGUI>("_comboText").font;label.alignment = TextAlignmentOptions.Center;label.rectTransform.position = Plugin.counterPosition;if (score != null){score.noteWasCutEvent += onNoteCut;score.noteWasMissedEvent += onNoteMiss;}}void OnDestroy(){score.noteWasCutEvent -= onNoteCut;score.noteWasMissedEvent -= onNoteMiss;}private void onNoteCut(NoteData data, NoteCutInfo info, int c){if (data.noteType == NoteType.Bomb || !info.allIsOK) incrementCounter();}private void onNoteMiss(NoteData data, int c){if (data.noteType != NoteType.Bomb) incrementCounter();}private void incrementCounter(){counter++;counterText.text = counter.ToString();}}
}

请务必关注我们的公众号获取最新资源和信息:

更多资源在我们的讨论Q群:

810303476

转载于:https://www.cnblogs.com/cation/p/10309157.html

BeatSaber节奏光剑插件开发官方教程2-简单的插件示例相关推荐

  1. BeatSaber节奏光剑插件开发官方教程1-创建一个插件模板

    原文:https://wiki.assistant.moe/modding/intro 一.简介 Beat Saber 开发环境:unity2018.C#..NET framework 4.6. 此教 ...

  2. Matlab配置libsvm并实现官方教程

    文章导航 libsvm的安装 官方教程 一个简单的测试实例 libsvm的安装 libsvm是一个实现了SVM支持向量机的库,可以在MATLAB上配置调用,以下是我的安装流程,包括记录一下在安装过程中 ...

  3. mmdetection3d简单安装(官方教程就是坑)

    所有的Python包安装不确定对应的版本就是坑,本教程教您少安装mmdetection3d闭坑. 首先看官方的教程:https://github.com/open-mmlab/mmdetection3 ...

  4. 3张硬纸板DIY《节奏光剑》全身追踪器,免费开源可替代淘宝3000元套件

    博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 安上3张硬纸板后,不忍直视的壮汉撒娇立马对味儿了: 没错,就是这样平平无奇的纸板: 这样一个看上去分分钟就能DIY出来的纸板,居然能用来捕捉 ...

  5. Unity搭配Kinect制作仿节奏光剑的游戏

    打算做一个仿照节奏光剑的游戏,先是花了一晚上找了找解决方案,有一个Openpose还有一个ThreeDPoseTracker,看了看配置好麻烦,而且都太吃配置了,我的1060还想多用几年,所以最后还是 ...

  6. basler相机参数简要中文说明_附下载| OpenCV最新中文版官方教程

    OpenCV是计算机视觉中经典的专用库,然而其中文版官方教程久久不来.近日,一款最新OpenCV4.1 版本的完整中文版官方教程出炉,读者朋友可以更好的学习了解OpenCV相关细节.教程根据官方提供的 ...

  7. 福利,PyTorch中文版官方教程来啦(附下载)

    PyTorch 中文版官方教程来了. PyTorch 是近期最为火爆的深度学习框架之一,然而其中文版官方教程久久不来.近日,一款完整的 PyTorch 中文版官方教程出炉,读者朋友从中可以更好的学习了 ...

  8. PyTorch官方教程大更新:增加标签索引,更加新手友好

    点击上方↑↑↑"视学算法"关注我 来源:公众号 量子位 授权 PyTorch官方教程,现已大幅更新: 提供标签索引,增加主题分类,更加新手友好. 不必再面对一整页教学文章茫然无措, ...

  9. PyTorch中文版官方教程来啦(附下载)

    PyTorch 中文版官方教程来了. PyTorch 是近期最为火爆的深度学习框架之一,然而其中文版官方教程久久不来.近日,一款完整的 PyTorch 中文版官方教程出炉,读者朋友从中可以更好的学习了 ...

最新文章

  1. Jenkins构建之常用的触发器和Git Hook自动构建
  2. 域服务器可以修改ip,Windows Server 2016 域控制器修改IP
  3. P3531-[POI2012]LIT-Letters【逆序对,树状数组】
  4. swift菜鸟入门视频教程-09-类和结构体
  5. Linux系统双机热备的方案
  6. spark2.0配合hive0.13.1使用问题处理
  7. python进程间通信总结_进程间通信方式总结(优缺点)
  8. TM2008预览版试用 速度快完美兼容Vista
  9. PHP中的日期相减函数,在php中有没有日期相减的函数
  10. Oracle VM VirtualBox固定ip
  11. excel 删除重复项_在Excel 2007中删除重复项
  12. 中文分词器ICTCLAS使用方法(Java)
  13. leetcode学习记录_贪心
  14. SharePoint 2019 new Update
  15. nginx正向代理解决跨域问题
  16. KRPANO资源分析工具下载720YUN全景图
  17. 友盟推送成功但是收不到
  18. 2017 TOMM-A Discriminatively Learned CNN Embedding for Person Re-identification
  19. vscode 逗号不换行_苹果手机九宫格怎么换行 苹果手机九宫格换行操作步骤
  20. 【Python】Python 可变对象和不可变对象

热门文章

  1. 0x0报错解决--win11预览版升级报错0x0的快速解决方案
  2. 让企业报表化繁为简,Smartbi实现报表统一管理
  3. openmv 神经网络 超出内存_星瞳科技OpenMV视频教程22-神经网络cifar_10
  4. java获取当前日期 星期几_java获取当前日期是星期几的方法
  5. Vampire:吸血鬼
  6. 英语发音规则---B字母
  7. Edge出现无法访问此页面xxxxxx已拒绝连接。
  8. Live555(一)
  9. 881. 救生艇-快速排序加贪心算法
  10. 2019/4/2更新 重制3617-6.17 增加918+6.21 二合一引导启动系统盘