[過去ログ] 【3Dゲームエンジン】Unity質問スレッド32 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
709: 名無し@キムチ 2017/12/09(土)08:10 ID:1JEBIHPe(1/2) AAS
やったー!!外部オーディオ鳴らすのに成功したーーーーっ!!!!
最初のりたまブログのこのコード見たけどダメだった・・・

IEnumerator StreamPlayAudioFile(string fileName)
{
//ソース指定し音楽流す
//音楽ファイルロード
using(WWW www = new WWW("file:///" + fileName))
{
//読み込み完了まで待機
yield return www;

audioSource.clip = www.GetAudioClip(true, true);

audioSource.Play();
}
}

いろいろ試してみたけどダメで、挫折しそうになったが、
audioSource.clip = www.GetAudioClip(true, true);
の前の行に、
audioSource = GetComponent<AudioSource>();
というのを付け加えて、オブジェクトに空のオーディオソースコンポーネントを追加したところ、
音楽が鳴ったぁぁぁあああああーーーーーーーーっ!!!!!!!
いやあ、当方って天才かも!?(マジで)
みなさぁーーーーん、オーディオはコンポーネントで追加しなくても(空のコンポーネントは必要だけど)、
外から読み込んで使えるので、参考にしてくださいね。
(これはユーザーに自分の好きなゲームBGMを使ってもらうことができるすごい方法です!)
いやあ、当方って天才!!!!!!!!
710
(3): 2017/12/09(土)12:22 ID:8nWowzmq(1/2) AAS
スレチだったらごめん。
アクションゲームを作るために「ゲーム制作のための数学」系の本を
一冊買っておきたいんだけど、何かおすすめあります?
もしくはアルゴリズムの参考になるアセットがあったら教えてほしい。
711
(1): 2017/12/09(土)13:07 ID:X9y8lbqo(1/3) AAS
>>710
アクションゲームの完成プロジェクトアセットを購入しましょう
712
(1): 2017/12/09(土)15:04 ID:Ia5bSAGk(1/6) AAS
>>708
残念ながらジェネリック関数を扱う予定はなし

>>710
市販品で例えるとどんなアクションゲーム?
Unityは大抵のゲームアルゴリズムが既にシステム関数(メソッド)にまとめられて
1行書き込む(呼び出す)だけで使用できちゃったりするから覚える必要ない場合が多い
713
(1): 2017/12/09(土)16:49 ID:G7HaLFZX(1/3) AAS
>>710

2Dか3Dかで変わってきます
714
(1): 2017/12/09(土)16:59 ID:8nWowzmq(2/2) AAS
>>711-713
ごめん、2Dです。
マリオとかメトロイドヴァニア系のアクションをを作る予定ですが、ショットをちゃんとした物理的な挙動にしたいのと、
あと飛行タイプの敵とか動く足場とかを∞←こういう軌道で動かしたりしたいんですよね。
715: 2017/12/09(土)17:05 ID:x1Unwj8Y(1/2) AAS
unityの2Dでマリオ3みたいなやつでお手本になるゲームないでしょうか
マリオランみたいに一方にしか移動しないようなのじゃなくて
716
(1): 2017/12/09(土)17:27 ID:1JEBIHPe(2/2) AAS
PC内にあるすべてのwav音を鳴らすテストです。
この機能を取り入れれば、当方のソフト「振付王」も大いなる飛翔を遂げそうです ↓

動画リンク[YouTube]

717: ダーク王鍬大使 ◆SoVpkB15jY 2017/12/09(土)18:04 ID:bXsi3c78(1/4) AAS
>>716
キャラクターがすごく不気味でふ(^^
これがキムヨナでふか?(^^
718
(3): 2017/12/09(土)20:05 ID:AnRI3nPF(1/2) AAS
staticの変数(gameobject)をインスペクターから指定できないと知り、直接インスタンス化したいのですが、
Assets/Prefabsにあるprefabを指定するにはどうすれば良いでしょうか?

Instantiate(GameObject.Find(?????));
719: 2017/12/09(土)20:14 ID:X9y8lbqo(2/3) AAS
>>718
あなたにはプログラムの才能がないのでアセット購入することをオススメします
720
(1): 2017/12/09(土)20:16 ID:x1Unwj8Y(2/2) AAS
unityの2Dでマリオ3みたいなやつでお手本になるゲームないでしょうか
マリオランみたいに一方にしか移動しないようなのじゃなくて
721: ダーク王鍬大使 ◆SoVpkB15jY 2017/12/09(土)20:21 ID:bXsi3c78(2/4) AAS
>>718
GameObject.Findはヒエラルキー上のものを探すためのものでふよ(^^
722
(1): ダーク王鍬大使 ◆SoVpkB15jY 2017/12/09(土)20:36 ID:bXsi3c78(3/4) AAS
>>718
何をしたいのかよく分かりまふぇんがググって調べてきまひた(^^

public GameObject prefab;//これをフィールドに書く(^^

Instantiate(prefab, this.transform.position, Quaternion.identity);//これをvoid Start()内で実行する(^^

あとはインスペクタから使いたいプレファブをアタッチする(^^
これでスクリプトを張り付けてるオブジェクトの位置にprefabにアタッチしたPrefabを生成しまんこ(^^
723
(3): 2017/12/09(土)20:55 ID:AnRI3nPF(2/2) AAS
>>722
めちゃくちゃ言葉足らずですいません。
他スクリプトから呼び出すためにそのスクリプトをstaticで構成しました。

&#9332;staticを使っていてもインスタンペクターからプレファブを指定する方法

&#9333;Resouse.Loadを使わずにAssetフォルダにアクセスする方法

(3)別スクリプトから呼び出す場合でもstaticにしなくて良い方法

この中のどれかを募集中です。
724: 2017/12/09(土)21:06 ID:X9y8lbqo(3/3) AAS
>>723
アセット購入を募集していませんか?
725: ダーク王鍬大使 ◆SoVpkB15jY 2017/12/09(土)21:08 ID:bXsi3c78(4/4) AAS
(3)別スクリプトから呼び出しならstatic使わなくてもできまふよ(^^

どっかのオブジェクトにスクリプトがくっ付いてる場合(^^
呼び出される側
public int うんち
呼び出す側
変数名 = GameObject.Find("ヒエラルキーのオブジェクト名").GetComponent<オブジェクトにくっ付いてるスクリプト名>().スクリプトの変数名、この場合はうんち;

多分これで出来ると思いまんこ(^^
726: 2017/12/09(土)21:52 ID:+Fgkmrfl(1) AAS
ファイアーエムブレムのようなゲームが作りたくて参考書などを見ながらAI作ってたのですが上手く行きません
数千円以内で買えるアセットでよさげなのないでしょうか
727: 2017/12/09(土)21:53 ID:G7HaLFZX(2/3) AAS
3Dで基礎から勉強したければ、

難:「実例で学ぶゲーム3D数学」
中:「ゲーム開発のための数学・物理学入門」
易:「ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまで」

2Dでアルゴリズムのアイデアを得たければ、

「アクションゲームアルゴリズムマニアックス」
「アクションゲームプログラミング」
728: 2017/12/09(土)21:59 ID:G7HaLFZX(3/3) AAS
>>723

Staticは他のオブジェクト間で共有したいものに使うので、

ただ他のオブジェクトのコンポーネントを使いたいだけだったら、
Staticを付けなくても、呼び出して利用はできます
729: 2017/12/09(土)22:47 ID:Ia5bSAGk(2/6) AAS
どうも。
気分がノッたら講義のお時間です。
"while文" の予定でしたが変更して "for文" の続きです。

"for文" は配列を扱う時に適しています。
例えば次のような文字列型配列があったとします。


string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"};

この中身を全て表示したい場合、"for文" を使わない場合は次のようになります。


string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"};
Debug.Log( mes[0] );
Debug.Log( mes[1] );
Debug.Log( mes[2] );

表示したい数だけDebug.Logが必要になっていきます。
今は3つだからいいですがこれが100個あった場合は100個Debug.Logが必要になってしまいます。
730: 2017/12/09(土)22:48 ID:Ia5bSAGk(3/6) AAS
次に for文 を使用した場合の例です。


string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"};
for( int i=0; i<3; i++ ){
 Debug.Log( mes[i] );
}

for文 を使用すると100個あってもこの4行だけで済みプログラムをすっきりとまとめられます。


string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"};
for( int i=0; i<mes.Length; i++ ){
 Debug.Log( mes[i] );
}

for文の2番目を "i<3" と定数(この場合、「3」を動かない数字、定数と呼びます)にするのではなく
"i<mes.Length" にすることで自動的に配列数だけループしてくれるようになり便利です。
"mes.Length" には配列の最大値が格納されています。
731
(1): 2017/12/09(土)22:53 ID:Ia5bSAGk(4/6) AAS
また、配列処理に特化した専用のfor文といえる "foreach文" というのもありますが
for文で同じ事が出来る為講義ではあえて扱いません。
興味がある方は下のリンク先で確認してください。
今のあなたならリンク先の文章をなんとなく理解できる事でしょう。

配列での foreach の使用 (C# プログラミング ガイド)
外部リンク:docs.microsoft.com

本日は以上だクソども
732: 2017/12/09(土)23:01 ID:Ia5bSAGk(5/6) AAS
>>720
全13回の講座。
焦らずこれをじっくりやるといい。
外部リンク:hiyotama.hatenablog.com
733: 2017/12/09(土)23:07 ID:Ia5bSAGk(6/6) AAS
>>714
メトロイドヴァニアをYoutubeで拝見したがいきなりこれは難しいよ。
物理的な挙動に関してはUnityは物理エンジンが勝手にやってくれるので自分でプログラムする必要がない。

うまく伝わらない気はするが例えば
「このボールは1kg」「風の抵抗は受けない」「重力の影響は受ける」
みたいに画面を見ながら設定し
斜め上にむかって発射すれば勝手に本物のボールのように弧を描いて飛ぶ。

物理エンジンは、もともと自分でプログラムしないといけなかった事を勝手にやってくれる。
欠点として非リアル的な動きをしたい時に重力とかに逆らったりしなくちゃいけなくて
何度も何度もテストを繰り返さないといけないくなる。

∞のような動きはsin関数、cos関数で実現できる。

俺は本を買って学習してる訳ではないのでオススメを教えられないです。
734: 2017/12/09(土)23:17 ID:0z0JcPwI(1) AAS
>>731
ありがとうございます!!!
735: 2017/12/09(土)23:28 ID:MExT9ytU(1) AAS
これでまた、staticおじさんが一人この世から消えたのか
736: 2017/12/10(日)09:21 ID:rk89KMyG(1) AAS
static変数にする
static関数にする
staticゲームオブジェクトにする
詰む
737
(1): 2017/12/10(日)11:44 ID:ZDcJFyIw(1) AAS
>>723
そういう用途でstaticにするのは辞めたほうが……
シングルトンにしてDontDestroyと思う

それはそれとしてインスペクターのをstatic変数に反映させたいだけなら
責任は持ちません
public static GameObject hoge;
public GameObject hogehoge;
void awake(){
  if(hogehoge != null) hoge = hogehoge;
}
738
(1): 2017/12/10(日)11:48 ID:jcS8iLKb(1) AAS
staticをpublicでインスペクターから変更できるようにしてしまうと、

複数のオブジェクトで同時に同じstatic変数を変更してしまう恐れがあるから、

シングルトン機能がないと、どの設定値を参照するか不定になりそうで怖い・・・
設定値は複数オブジェクト間のインスペクター上で連動するのかな?
1-
あと 264 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.022s