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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
693: 2017/12/07(木)21:23 ID:oxqTCZ+G(1) AAS
>>689
回答されてるじゃん、まずそれやってみなよ。
そんで、やった結果をかきなって。
694: 2017/12/07(木)21:50 ID:NWPNPY2x(2/2) AAS
>>684
アセットのことはよく知らないけど、プログラムで動かす方法が一番普及してて、検索すれば情報もたくさん出てくるので習得しやすい気がする。

外部リンク:codegenius.org
外部リンク:csharp.sevendays-study.com
695: 2017/12/07(木)23:51 ID:DyP8ts7O(1) AAS
3Dゲームのプログラムは、3D空間上での挙動(移動と回転)がメインだから、
慣れればできると思うけど・・・

向きを変えて、移動して、発射して、当たったら消えて・・・
くらいできれば、少しゲーム性が出てくるので、

あとは、操作系を作りこんだり、挙動のパリエーションを増やしたり、
キャラを増やしたり、当たり判定を調整したり、試行錯誤
696: 2017/12/08(金)00:36 ID:Urki8ZVQ(1/2) AAS
ちゃんと動くクソゲーの出来上がりってわけ
697: 2017/12/08(金)01:50 ID:rY92HIWe(1/5) AAS
はい皆さんこんばんは。
気分が乗ったら講義のお時間です。

本日の講義は "ループ制御" です。
ループ制御は「プログラムの任意の場所を繰り返し実行させたい」ときに使うもので
"for文" と "while文" の2つを使います。
698: 2017/12/08(金)01:50 ID:rY92HIWe(2/5) AA×

699: 2017/12/08(金)02:06 ID:rY92HIWe(3/5) AAS
次に下の例を見てください。

[例]
int i=0;
for(i=10; i>0; i--){
 Debug.Log("i=" + i );
}

これはスタート値10から始まり、0に向かって1ずつiの値を減らしていっています。
実行結果は「i=10」「i=9」…「i=1」となります。
初心者が間違えやすいのが「i>0;」部分を終了条件と思う事です。
ここは終了条件ではなく『継続条件』です。
この部分の式が成立している間 for文 は繰り返しを実行し続けると思ってください。
上の例を言葉で表すと
「iの中身が0より大きい場合、繰り返してください」となります。

[例]
int i=0;
for(i=10; ; i--){
 Debug.Log("i=" + i );
}

これは「継続条件」を記述していない例です。
これでもエラーにはなりませんが絶対に実行しないでください。
この場所でプログラムが永遠と繰り返され続けUnityがフリーズしてしまいます。
これを『無限ループ』と呼びます。
無限ループが発生するとUnityを強制終了しないと終わらせられなくなります。
強制終了のやり方が分からない人は絶対に実行しないでください。

このように継続条件式を書く部分はとても重要です。
700: 2017/12/08(金)02:18 ID:rY92HIWe(4/5) AAS
[例]
for(int i=0; i<10; i++){
 Debug.Log("i=" + i );
}

これはiの宣言を for文 の中で一緒に行っている例です。
この記述が一番使います。
このiはfor文内の"{ }"の中だけ有効でループが終わると自動的に消滅します。
この点がfor文外で宣言した場合と異なるので注意が必要です。
つまり以下の例はエラーになります。

[例]
for(int i=0; i<10; i++){
 Debug.Log("i=" + i );
}
Debug.Log("i=" + i ); //←"i"消滅後なのでここでエラーとなる。

Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
701
(1): 2017/12/08(金)02:33 ID:rY92HIWe(5/5) AAS
[例]
for(int i=0; i<10; i=i+2){
 Debug.Log("i=" + i );
}

これは三番目の増減値を1ではなく2にした例です。
「i=0」「i=2」「i=4」…「i=10」のように表示されます。
"i=i+2"部分は"i+=2"のように省略系も使用できます。

[例]
for(int y=0; y<3; y++){
 for(int x=0; x<3; x++){
  Debug.Log( x + ":" + y );
 }
}

多重ループの例です。
ループ制御はループ中にさらにループさせることが可能です。
上の例の場合は
「0:0」「1:0」「2:0」
「0:1」「1:1」「2:1」
「0:2」「1:2」「2:2」
のように表示されます。
2DのJRPGやシミュレーションのフィールドマップや、手動であたり判定を行う時に使用したりします。

Rock54が出たから while文 は次回に持ち越し
今回は以上だクソども
702: 2017/12/08(金)02:35 ID:Urki8ZVQ(2/2) AAS
最初から条件式が偽の場合の説明がないやん
703
(1): 2017/12/08(金)09:34 ID:Qga/mJqt(1/2) AAS
インポート時、プロジェクトの cs ファイル変更時におきる

Compiling Script というプログレッシブバーや、右下のぐるぐるがとまらない

の処理が10分たっても終わりません。
mono.exe を kill すると復帰するのですが、そのあとメッセージなしのエラーが表示されます。

対策あったら教えてください。お願いします。
704
(1): 2017/12/08(金)10:04 ID:vndbYB6g(1) AAS
>>703
対策案ですが、アセットを買ってみたらどうですか?
705: 2017/12/08(金)10:07 ID:Qga/mJqt(2/2) AAS
>>704
どのアセットですか?
706: 2017/12/08(金)10:20 ID:0uuW61/P(1) AAS
まーた中身を理解しないままパクッて使おうとしてるキムチか
707: 2017/12/08(金)12:50 ID:v80JBwFv(1) AAS
プロジェクトウィンドウでC#スクリプトファイルを作成した際に、アイコンが通常のC#ではなく歯車になることがあります。
その条件と理由を教えて下さい。
708
(1): 2017/12/08(金)20:16 ID:q0nmqcMI(1) AAS
>>701
ありがとうございます!!
ジェネリック関数の講義が待ち遠しい。
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を生成しまんこ(^^
1-
あと 280 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.040s