调用winform添加音乐或图片

本文介绍了一个使用Unity实现的音频和图片文件加载及播放系统的示例代码。该系统通过脚本实现了从本地文件系统中选择多个音频文件(.ogg, .wav)并创建对应的按钮来播放这些音频文件的功能。此外,还提供了加载图片文件并更改游戏对象纹理的能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import System.IO;
import System.Windows.Forms;


var filecount =0;
var Audiopathname = new Array();
var Audiofilename = new Array();
var AudioButton = new Array();
var myFile : FileInfo;
var AudioStyle : GUIStyle;
var PicStyle : GUIStyle;
var obj : GameObject;
function Start () {


}


function Update () {
if(Input.GetKey(KeyCode.Escape))
UnityEngine.Application.Quit();

for(var i : int = 0;i<filecount;i++)
{
if(AudioButton[i])
ChangeAudio(Audiopathname[i]);
}
}


function OnGUI(){
if(GUI.Button(Rect(UnityEngine.Screen.width*0.7, UnityEngine.Screen.height*0.9, UnityEngine.Screen.width*0.17, UnityEngine.Screen.height*0.06),"",AudioStyle)){
var Myofd : OpenFileDialog= new OpenFileDialog();
Myofd.InitialDirectory ="file://"+UnityEngine.Application.dataPath;
Myofd.Multiselect=true;

Myofd.Filter="音频文件(*.ogg,*.wav)|*.ogg;*.wav";
Myofd.FilterIndex=2;

if(Myofd.ShowDialog()==DialogResult.OK){
filecount = Myofd.FileNames.Length;
Audiopathname.length = filecount;  
AudioButton.length = filecount;  
Audiofilename.length = filecount; 

for(var i : int = 0;i<filecount;i++)
{
Audiopathname[i] = Myofd.FileNames[i];
myFile=FileInfo(Myofd.FileNames[i]);
        Audiofilename[i]=myFile.Name;
}


}
}

if(GUI.Button(Rect(UnityEngine.Screen.width*0.7, UnityEngine.Screen.height*0.8, UnityEngine.Screen.width*0.17, UnityEngine.Screen.height*0.06),"",PicStyle)){
var Mypicofd : OpenFileDialog= new OpenFileDialog();
Mypicofd.InitialDirectory ="file://"+UnityEngine.Application.dataPath;
if(Mypicofd.ShowDialog()==DialogResult.OK){
Debug.Log(Mypicofd.FileName);
changetexture(Mypicofd.FileName);
}
}

if(filecount>0){
for(var j : int = 0;j<filecount;j++)
{
AudioButton[j] = GUI.Button(Rect(UnityEngine.Screen.width*0.1,UnityEngine.Screen.height*0.1+UnityEngine.Screen.height*0.1*j,UnityEngine.Screen.width*0.2,UnityEngine.Screen.height*0.1),Audiofilename[j]); 
}
}


}


function ChangeAudio(name: String) {
    www = new WWW("file://" + name);
yield www;
UnityEngine.Resources.UnloadUnusedAssets();
GetComponent.<AudioSource>().clip = www.GetAudioClip();
GetComponent.<AudioSource>().Play();
}


function changetexture(name : String){
www = new WWW ("file://"+name);
yield www;
UnityEngine.Resources.UnloadUnusedAssets();
obj.GetComponent.<Renderer>().material.mainTexture=www.texture;
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值