[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild4 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
273
(2): くまじょ 2020/04/25(土)15:30 ID:z5N+YfUG(2/6) AAS
乱数が選んだものをリストから抜いてリストの最後に追加しておくとか
乱数の範囲は要素数-1で最後の要素(前回選んだもの)を避ける
初回は必ずリストの最後が選ばれないことになるけど
276
(1): 2020/04/25(土)16:04 ID:2pXFtKle(2/2) AAS
>>273の再生したSEをリストの最後に追加してランダムのレンジに含めないがスマートで実用的かもしれませんね。

+1などで処理すると結局順番に再生されるだけでランダムにならないから質問者の意図する挙動とは違ってしまうんじゃないでしょうか?
278: 267 2020/04/25(土)17:19 ID:c8LTCDvQ(3/3) AAS
皆さんから助言を頂いて有難うございました。
>>273の方のやり方で、ずっと試していました。先ほどエラーが全部消えてやっと動くようになりました。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ken_furu : MonoBehaviour
{
public List<AudioClip> _SE;//リスト型 4つのSE
AudioClip DeleteClip; //選ばれて消えたSEを変数に入れる

private AudioSource audioSourse;
Animator animator;

void Start()
{
animator = GetComponent<Animator>();
audioSourse = GetComponent<AudioSource>();
}
public void SE()
{
int a = Random.Range(0, _SE.Count-1);//リストの最後の要素はランダムレンジから外す
audioSourse.PlayOneShot(_SE[a]);//選ばれたSEを鳴らす
AudioClip DeleteClip= _SE[a];//選ばれたSEをDeleteClipの変数に入れる
_SE.RemoveAt(a); //選ばれて鳴ったSEを削除
_SE.Add(DeleteClip); //選ばれて消えたSEをリストの最後に追加
}
}
もしかしたら変な部分があるかもしれませんが、ちゃんと動いているようです。
本当に有難うございました。助かりました。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.038s