#目次
1.UdonSharpを書くための準備をする
2.UdonSharpを書く
3.ボタンにするゲームオブジェクトを作る
4.ワールドを完成させる
5.動作確認
6.次回
#1.UdonSharpを書くための準備をする
##Unityで新しくプロジェクトを立ち上げる
テンプレートは3D、
プロジェクト名はUdonなどわかりやすい名前にしておきましょう
右下の作成でプロジェクトを作成します
##VRCSDKをインポートする
プロジェクトが開いたら、VRCSDKをインポートします
VRCSDKは自分に合ったバージョンの物をインポートしましょう
__SDK3-Worlds__をもっていない場合は、VRChat Homeから、ダウンロードできます
インポートは、VRCSDKをUnityのAssetsへ、ドラッグアンドドロップします
インポートを押します
インポートが終わると、フォルダが追加されると思います
##最新のUdonSharpをダウンロードする
UdonSharpは、MerlinVRさんがGitHubで公開しているものを使います
最新のUdonSharpをダウンロード
ダウンロードができると、UdonSharpのUnityPackageを、Unityにインポートします
インポートを押します
インポートが終わると、フォルダが追加されると思います
##UdonSharpを作るフォルダを作る
Assetsにファイルが散らばるのも嫌なので・・・
今回はAudioPalyなどの名前で、フォルダを作ります
作りました
##U#Scriptを作る
AudioPlayにU#Scriptを作ります
Create/VRChat/Udon/Udon C# Program Asset
で、ProgramAssetを作成します
名前は、AudioPlayとかにしておきます
これでProgramAssetはできました
次に、ProgramAssetを開いて、Scriptを作成していきます
InspectorからCreate Scriptを押します
保存選択画面が出てくると思いますが、名前は最初から入力されているので、そのまま保存します
これでU#Scriptが完成しました
#2.UdonSharpを書く
AudioPlay.csを開きます
##変数を宣言する
オーディオを扱うために、変数を宣言します
__privateな、AudioSource型の変数__を、定義します
名前は、わかりやすい名前にしておきます
今回私は、audioSourceで宣言しました
private AudioSource audioSource;
これで変数はできました
##スタート時にオーディオソースを取得する
オーディオソースを取得するため、最初からあるStartメソッドに、コードを書いていきます
Scriptを入れたゲームオブジェクトに入っているオーディオソースを取得したいので、
GetComponentを使って、AudioSourceを取得します
次に、取得したオーディオソースは、audioSource変数に代入します
void Start()
{
audioSource = GetComponent<AudioSource>();
}
これでオーディオソースの取得ができました
##ゲームオブジェクトをクリックできるようにする
ゲームオブジェクトをクリックしたときに、イベントを発生させるメソッドは二つあり、
MonoBehaviourに入っている__OnMouseDown__と、
UdonSharpBehaviourに入っている__Interact__があります
また、InteractはVRChat用に作られています(詳しいことはしらない、勉強不足)
今回はInteractを使います
publicな、戻り値無しの上書き可能メソッドとして、定義します
public override void Interact()
{
}
これで、クリック判定ができるようになりました
##クリックされた時の処理を書く
クリックされた時の処理は、上記で取得したオーディオを再生したいので、
AudioSource __.Play__を使って再生します
(Interactメソッドの中に書きます)
audioSource.Play();
これで、クリックしたときに再生されるようになりました
スクリプトを保存して、Unityに戻りましょう
#3.ボタンにするゲームオブジェクトを作る
##ゲームオブジェクトにスクリプトを入れる
まずは、ゲームオブジェクトを作ります
名前はAudioPlayButtonにしておきました
(コライダー判定が邪魔な人は、Box Collider の IsTriggerをオンにしましょう)
この中に、スクリプトを入れていきます
ゲームオブジェクトに、AudioPlayスクリプトを、ドラッグアンドドロップします
ドラッグアンドドロップをすると、Convert to UdonBehaviourを押します
これで、Scriptが使えるようになりました
Useするときの文字を変えたい場合は、Interaction Textを書き換えることで、変更できます
##再生するオーディオソースを入れる
オーディオソースは、効果音ラボさんから、いただきました
今回使用した音源は、ボタン・システム音の、[決定、ボタン押下3]を利用しました
ダウンロードがおわったら、オーディオを、ドラッグアンドドロップでインポートします
オーディオが入ったら、このオーディオを、ゲームオブジェクトにドラッグアンドドロップします
これで、オーディオソースがはいったので、設定していきます
Play on Awakeを外します
Priorityを0にします
Volumeを0.5にします
これで設定ができました
#4.ワールドを完成させる
このままでは、地面も何もないので実行できません
地面とスポーンするためのVRCWorldを追加していきます
まずは、地面を作ります
Terrainやキューブなどで、地面を作ります
地面が完成しました
次に、VRCWorldを追加して、リスポーン位置を設定します
Assets/VRChat Examples/Prefabs の中にあります
これを、ドラッグアンドドロップで、Hierarchyに追加します
追加できました
これで、ワールドとして使えるようになりました
#5.動作確認
VRChat SDKから、Build & Testを実行します
テスト動画
動いていれば成功です
動いてない場合は、もう一度、スクリプトを確認してみてください
お疲れさまでした
#6.次回
また何か作ります