当前位置: 首页 > news >正文

可以做网站高仿服装吗成都私人网站建设

可以做网站高仿服装吗,成都私人网站建设,做海外推广的公司,物联网技术应用👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

在这里插入图片描述


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏:Unity基础实战

🅰️



文章目录

    • 🅰️
    • 前言
    • 🎶(==A==) Koreographe插件导入
    • 🎶(==B==)项目背景搭建
      • 1.背景图片导入黑锐Slice切割图集
      • 2.透视摄像机的设置(项目打开默认的就是透视摄像机)
      • 3.摄像机和音符轨道的位置和旋转角度的设置
      • 4.动画效果的设置
      • 5.编辑器拓展(新建文件夹Editor)
    • 🎶(==C==)游戏场景UI面板制作
      • 1.UGUI复合控件(Slider)做血条
      • 2.Outline (外框线)做字体
    • 🎶(==D==)逻辑主体相关
      • 1.创建击打点
      • 2.导入构建好的音乐插件工程
      • 3.创建音乐管理器
      • 4.RythmGameContorller脚本的初步构建(游戏管理器脚本)
      • 5.STrackManager (音轨管理器脚本的构建)
      • 6.NoteObject(音符快脚本的构建)
    • 🅰️


前言

Koreographer是一款专为Unity游戏引擎设计的音乐插件。它由Sonic Bloom开发,旨在帮助开发者更好地管理和同步游戏音乐与动画的播放,从而提供更丰富和沉浸式的游戏体验。
Koreographer提供了一套强大的工具和功能,使开发者能够以精确的时间控制和节奏感来驱动游戏中的音乐和动画。它能够通过可视化编辑器轻松地将音频和动画事件关联起来, 使开发者能够精确地在特定音频时刻触发和控制游戏中的动画、粒子效果、声音效果等。
此外,Koreographer还提供了用于动态调整音频和动画播放速度、音频循环控制、基于音乐节奏的游戏事件触发等功能,使开发者能够更灵活地控制和调整游戏中的音乐和动画表现。
总而言之,Koreographer是一款强大的Unity音乐插件,为开发者提供了丰富的工具和功能,以实现更精确和沉浸式的音乐与动画表现。在这里插入图片描述


🎶(A Koreographe插件导入


  • Koreographe插件导入
    在这里插入图片描述
  • 版本老的可能需要自行修改一下:如下:GUIText已经过时——>Text并引用头文件
    在这里插入图片描述

🎶(B项目背景搭建


在这里插入图片描述


在这里插入图片描述

1.背景图片导入黑锐Slice切割图集


在这里插入图片描述

  • 若显示未下载相关的包,则进行如下操作
    在这里插入图片描述

2.透视摄像机的设置(项目打开默认的就是透视摄像机)


  • 原理:音游项目,那些下落的音符本来就是具有近大远小的效果,所以我们的透视摄像机它的作用也是具备近大远小的效果

3.摄像机和音符轨道的位置和旋转角度的设置


在这里插入图片描述


4.动画效果的设置


  • 自定义添加DIY动画(可以改变背景图片和轨道的颜色),变成频闪
    在这里插入图片描述

5.编辑器拓展(新建文件夹Editor)


  • 图片切割(拓展)

作用:图片一键切割

using UnityEngine;
using System.Collections;
using UnityEditor;
using System.IO;
using System.Collections.Generic;public static class ImageSlicer
{[MenuItem("Assets/ImageSlicer/Process to Sprites")]static void ProcessToSprite(){Texture2D image = Selection.activeObject as Texture2D;//获取旋转的对象string rootPath = Path.GetDirectoryName(AssetDatabase.GetAssetPath(image));//获取路径名称string path = rootPath + "/" + image.name + ".PNG";//图片路径名称TextureImporter texImp = AssetImporter.GetAtPath(path) as TextureImporter;//获取图片入口AssetDatabase.CreateFolder(rootPath, image.name);//创建文件夹foreach (SpriteMetaData metaData in texImp.spritesheet)//遍历小图集{Texture2D myimage = new Texture2D((int)metaData.rect.width, (int)metaData.rect.height);//abc_0:(x:2.00, y:400.00, width:103.00, height:112.00)for (int y = (int)metaData.rect.y; y < metaData.rect.y + metaData.rect.height; y++)//Y轴像素{for (int x = (int)metaData.rect.x; x < metaData.rect.x + metaData.rect.width; x++)myimage.SetPixel(x - (int)metaData.rect.x, y - (int)metaData.rect.y, image.GetPixel(x, y));}//转换纹理到EncodeToPNG兼容格式if(myimage.format != TextureFormat.ARGB32 && myimage.format != TextureFormat.RGB24){Texture2D newTexture = new Texture2D(myimage.width, myimage.height);newTexture.SetPixels(myimage.GetPixels(0),0);myimage = newTexture;}var pngData = myimage.EncodeToPNG();//AssetDatabase.CreateAsset(myimage, rootPath + "/" + image.name + "/" + metaData.name + ".PNG");File.WriteAllBytes(rootPath + "/" + image.name + "/" + metaData.name + ".PNG", pngData);// 刷新资源窗口界面AssetDatabase.Refresh();}}
}

🎶(C游戏场景UI面板制作


在这里插入图片描述


1.UGUI复合控件(Slider)做血条


在这里插入图片描述

  • 新建Silder后删除或者隐藏Handle Slide Area
    Background作为血条背景框,Fill作为血条图形
    在这里插入图片描述

2.Outline (外框线)做字体


在这里插入图片描述


🎶(D逻辑主体相关


1.创建击打点

在这里插入图片描述


2.导入构建好的音乐插件工程


  • 在Resources资源文件夹下面新建 Koreographe文件夹,并导入编辑制作好的 两项Koreographe资产

在这里插入图片描述

  • 拖动添加音轨事件

在这里插入图片描述

  • 打开后工程界面如图
    在这里插入图片描述
  • 音频中的采样率

在Unity中,采样率(Sampling Rate)是指音频数据每秒进行采样的次数。采样率决定了音频的频谱范围和精度,即采样率越高,音频的质量和精度越高。常见的采样率有44100Hz、48000Hz等。在Unity中,可以通过修改AudioClip的属性来设置音频的采样率。

在这里插入图片描述


3.创建音乐管理器


  • 首先挂载Audio Source组件(为播放音乐)
  • 其次添加Simple Music Player 配套的固定组件(不然播放不了音乐)
  • 最后是Koographer单例
    在这里插入图片描述

在这里插入图片描述


4.RythmGameContorller脚本的初步构建(游戏管理器脚本)


在这里插入图片描述

using SonicBloom.Koreo;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;//-------------------------------
//-------功能: 游戏功能控制器  
//-------创建者:          
//------------------------------public class RythmGameContorller : MonoBehaviour
{//-----------------------------------------------[Tooltip("用于目标生成的轨道的事件对应ID")][EventID] //音游插件所带的API特性public string eventID;[Tooltip("命中目标的窗口范围(也可为音符被命中的难度,单位:ms)")][Range(8f, 300f)]public float hitWindowRange;public float noteSpeed = 1f; //音符速度//可按下检测的区域范围public float WindowSize{get{//速度 X 时间  (1m/s = 1000 m/ms)//要以Unity为单位(m/s)return noteSpeed * (hitWindowRange * 0.001f);}}//音符块命中的窗口的宽度private int hitWindowWidth;public int HitWindowWidth{get{return HitWindowID; }}//引用private Koreography koreography; //音乐插件public AudioSource audio; //音频资源public List<STrackManager> noteSoundTrack = new List<STrackManager>(); //声明装音轨的列表//音频的采样率的获取private int samplingRate;public int SamplingRate{get{return koreography.SampleRate; //返回采样率}}//音符块预制体资源public NoteObject noteObject;//按下特效预制体资源public GameObject downffect;//击中特效预制体资源public GameObject hitEffect;//长击中特效预制体资源public GameObject longHitEffect;[Tooltip("音频调用之前的延时时间")]public float playMusicTime;//音频播放前的时间差private float MusicOffsetTime;//音乐开始前倒计时 private float MusicCountdown;//当前的采样时间public int DelayedSampleTime{get{return koreography .GetLatestSampleTime()- SamplingRate *(int )MusicOffsetTime;}}//-----------------------------------------------void Start(){InitializeLeadIn();for (int i = 0; i < noteSoundTrack.Count; i++){noteSoundTrack[i].Initialize(this ); //实例化列表中的音轨}//获取到koreography对象koreography = Koreographer.Instance.GetKoreographyAtIndex(0);//事件轨迹的基类 ——>获取事件轨迹KoreographyTrackBase rhythmTrack = koreography.GetTrackByID( eventID);//获取事件List<KoreographyEvent > events =  rhythmTrack.GetAllEvents();for (int i = 0; i < events. Count; i++){KoreographyEvent evt = events[i];int noteID = evt.GetIntValue();   //获取每个事件对应的数值//遍历所有音轨for (int j = 0; j < noteSoundTrack.Count ; j++){STrackManager sTrack = noteSoundTrack[j];//noteID的简单处理if (noteID > 6){noteID = noteID - 6;if (noteID > 6){noteID = noteID - 6;}}if (sTrack .IsMatch (noteID)) //若编号匹配{sTrack.AddEvnetToTrack(evt); //则将事件添加音轨对应的事件列表中break;}}}//命中窗口宽度的计算hitWindowWidth = (int) (SamplingRate * hitWindowRange * 0.001f);}void Update(){//倒数倒计时 (计时器)if (MusicCountdown > 0) //当音频还未播放前{MusicCountdown = Mathf.Max(MusicCountdown - Time.unscaledDeltaTime,0);//Time.unscaledDeltaTime;只与现实时间相关,不受timeScale影响}//倒数延时时间(计时器)if(playMusicTime > 0 ){playMusicTime = Mathf.Max(playMusicTime - Time.unscaledDeltaTime, 0); }}/// <summary>/// 初始化导入时间/// </summary>private void InitializeLeadIn(){if(playMusicTime > 0) //当具有延时时间时== 时间差 == 音乐倒计时{MusicOffsetTime = playMusicTime;MusicCountdown = playMusicTime;}else{audio.Play();}}
}

5.STrackManager (音轨管理器脚本的构建)


在这里插入图片描述

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using SonicBloom.Koreo;//-------------------------------
//-------功能:   音轨管理器脚本
//-------创建者:         -------
//------------------------------public class STrackManager : MonoBehaviour
{private RythmGameContorller rythmGameContorller; //声明游戏管理器脚本成员变量 private List<KoreographyEvent> trackEvents = new List<KoreographyEvent>(); //声明KoreographyEvent事件列表[Tooltip("音轨对应事件的编号ID")]public int trackID; // Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){}//实例化游戏管理器public void Initialize(RythmGameContorller contorller){rythmGameContorller = contorller;}//判断音轨是否和事件编号匹配public bool IsMatch( int noteID){return noteID == trackID;}//IsMatch = true ,则将当前事件添加进入音轨中的事件列表内public void AddEvnetToTrack(KoreographyEvent evt){trackEvents.Add(evt);}
}

6.NoteObject(音符快脚本的构建)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;//-------------------------------
//-------功能:  音符脚本
//-------创建者:         -------
//------------------------------public class NoteObject : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){}
}

🅰️


⭐【Unityc#专题篇】之c#进阶篇】

⭐【Unityc#专题篇】之c#核心篇】

⭐【Unityc#专题篇】之c#基础篇】

⭐【Unity-c#专题篇】之c#入门篇】

【Unityc#专题篇】—进阶章题单实践练习

⭐【Unityc#专题篇】—基础章题单实践练习

【Unityc#专题篇】—核心章题单实践练习


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!


在这里插入图片描述


http://www.mnyf.cn/news/15546.html

相关文章:

  • 广州白云机场疫情最新消息seo网站关键词优化工具
  • 自己做网站优化编程培训机构加盟哪家好
  • 可以看国外网站的dns南昌seo搜索排名
  • 网站建设国内现状河北百度推广客服电话
  • easyui网站开发实战 pdf精准网站seo诊断报告
  • 工信部 加强网站备案搜索引擎优化方案
  • 最好的公文写作网站网站推广的基本方法
  • 企业网站做开放api微信营销管理软件
  • 江门桂城网站建设企业营销策划有限公司
  • 沈阳做网站的设计公司我想在百度上做广告怎么做
  • 郴州网站运营公司公众号怎么推广和引流
  • wordpress导入文件太大杭州seo网站哪家好
  • 网站 banner上海关键词排名推广
  • 青岛网站开发费用百度指数下载手机版
  • 网站制作报价大约阿里云万网域名注册
  • wordpress政府门户主题中山seo排名
  • 北京响应式的网站设计推广app网站
  • 网站开发网站建设制作费用seo顾问推推蛙
  • 想让网站被谷歌收录怎么做如何进行网站推广?网站推广的基本手段有哪些
  • 企业做网站有用吗淘宝怎么优化关键词步骤
  • 传媒网站源码百度广告收费
  • 襄阳网站建设价格深圳竞价托管
  • 网站建设方案 报价seo入口
  • 汕头cms建站线上渠道推广怎么做
  • 网站js 做日历网页设计模板素材图片
  • 制作网站吗电子商务平台建设
  • l网站建设seo技术大师
  • 精品课程网站建设的国内外现状品牌宣传推广策划方案
  • 携程网站用js怎么做百度竞价包年推广公司
  • php网站开发实训总结画质优化app下载