[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/09 10:33 / Filesize : 338 KB / Number-of Response : 1052
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【3Dゲームエンジン】Unity質問スレッド32



1 名前:名無し@キムチ [2017/10/30(月) 05:05:35.00 ID:xnHTCaF3.net]
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

次スレは>>950以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
www24.atwiki.jp/unity2ch/

●リンク
・Unity(日本公式サイト)
unity3d.com/jp
・マニュアル
 docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
 unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 unity3d.com/jp/unity/faq
・MSDN
 msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

前スレ
【3Dゲームエンジン】Unity質問スレッド31
https://mevius.5ch.net/test/read.cgi/gamedev/1504366121/

701 名前:名前は開発中のものです。 mailto:sage [2017/12/06(水) 23:27:30.10 ID:Qzkk8sf8.net]
言ってることば無茶苦茶過ぎて相手にするだけ無駄
首切ろうがきるまいが関係ないしユニティちゃんがスタンダードシェーダー使っても問題ないし

702 名前:名前は開発中のものです。 mailto:sage [2017/12/06(水) 23:55:48.89 ID:lMvDYGo7.net]
>>671
だからよ
質問の時だけコテハン外して人を騙そうとしてるその魂胆がいけすかねーって言ってんだよキムチ!!
おいキムチ!!
バレてんだぞキムチ!!!!

703 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 05:31:08.71 ID:TfLDssMU.net]
エスパー案件で申し訳ないのですが
エディタのゲームビューでは表示されているオブジェクトが
スマホの実機上で表示されない場合どこを疑えばいいのでしょうか

対象はUIのボタンでエディタから静的にに配置した場合表示されますが
スクリプトからアクティブ切り替えやインスタンス生成した場合に表示されません

704 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 09:09:39.86 ID:NWPNPY2x.net]
新規プロジェクトを作って、対象のボタンと処理だけつけてビルドしてみる。

同じようになるなら、今度は元のプロジェクトの対象以外のスクリプトを全部コメントアウトしてビルド。

何か変化したら、コメントアウトを少しづつ外して、問題のある

705 名前:スクリプトを探していく。

変わらないなら、ボタンかCanvasの
インスペクターウィンドウでの設定に問題があるのかも。
[]
[ここ壊れてます]

706 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 13:50:45.87 ID:xK05b4bo.net]
>>675
アセットを買うのが解決の早道ですよ!

707 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 14:07:34.77 ID:QBK35S4q.net]
アセトンとは、ケトンの分類の中でも1番単純な構造を持っており、分子が小さいので溶けやすく、水にも、ほとんどの油脂にも溶けるので、様々な用途に有機溶媒として用いられている物質である。

708 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 16:34:15.05 ID:TdH7rlV1.net]
カキーン + _____ *
   / //  /|
  | ̄/  ̄ ̄|//|
  |/∧_∧/|/ |
* | (´・ω・)| | +
  | (/o旦o | |
  |/ー―-′|/
 *  ̄ ̄ ̄ ̄ ̄

709 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 16:43:23.82 ID:oyXAQYK2.net]
オブジェクトの外周をもやっと光らせる表現ってどうやってるんだろう
単純に形状に対応したパーティクル作ってるだけ?



710 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 17:48:46.63 ID:4zStDQvW.net]
マスク切って発光でフラクタルノイズ重ねてグロー掛けるとか

711 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 17:52:05.62 ID:4zStDQvW.net]
ごめんAEスレと間違えた

712 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 18:22:14.81 ID:C5TGB3mz.net]
パーティクルでもポストエフェクトでもエミッシブでもできる
ケースバイケース

713 名前:名無し@キムチ [2017/12/07(木) 19:24:09.17 ID:hswJM9ej.net]
>>674
残念だが>>671の質問は当方のものではない。
また当方は質問のときだけコテハン外したりはしない。
ただうっかりしてコテハンつけ忘れたことはあるが、それも2〜3回程度だw
キミはあまりレベルが高くないようだな・・

714 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 19:32:41.25 ID:5K/yowW4.net]
>>677
プログラム素人でfbxで物作るだけの人は
どんなアセット買えばいいのですか

715 名前:名無し@キムチ [2017/12/07(木) 19:43:06.82 ID:hswJM9ej.net]
>>685
アセット買うよりも、つくったfbxをアセットにして販売するほうがいいと思います。
とくできていればアセットの審査にも通るでしょう。
ただアセットは登録の申請がチョー複雑で難しいです。プログラムの100倍は難しいと思ったほうがいいでしょう。
当方も申請の仕方がよく理解できずに、挫折したひとりですw

716 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 19:57:53.21 ID:xK05b4bo.net]
>>685
完成プロジェクト系のアセットがいいですよ。
素材を揃えることできれば簡単にゲーム化できます。

717 名前:名無し@キムチ [2017/12/07(木) 20:16:46.23 ID:hswJM9ej.net]
よくここでC♯プラグラムの講座をしている人は、
それよりアセットの登録の仕方を、小学3年生でもやかるような簡単な言葉で、
最初から順序よく、欠落した部分がないように、懇切丁寧に述べていただければ助かります。

小学3年生(その中でも落ちこぼれ生徒)のための、アセット登録申請講座、ぜひやっていただきたい!!!

718 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 20:51:22.30 ID:4indIwx4.net]
bolt使ってる人いる?
フローグラフとステートグラフがあるのは相当整理しやすそうだけど機能や操作性はplaymakerと比べてどんな感じ?

719 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 20:54:28.81 ID:TfLDssMU.net]
>>675
この質問わかる方いませんか?



720 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 20:59:33.67 ID:KQoomDkR.net]
申し訳ないなら書くなバカ

721 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 20:59:47.59 ID:4zStDQvW.net]
>>690
このスレにはそんな難しい質問に答えられる奴はいない。
TwitterやFacebookで現役のエンジニアに質問してみたまえ

722 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 21:22:46.91 ID:xK05b4bo.net]
>>690
アセットをかえばいいんじゃないですか?

723 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 21:23:50.82 ID:oxqTCZ+G ]
[ここ壊れてます]

724 名前:.net mailto: >>690
回答されてるじゃん、まずそれやってみなよ。
そんで、やった結果をかきなって。
[]
[ここ壊れてます]

725 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 21:50:41.87 ID:NWPNPY2x.net]
>>685
アセットのことはよく知らないけど、プログラムで動かす方法が一番普及してて、検索すれば情報もたくさん出てくるので習得しやすい気がする。

https://codegenius.org/open/courses
csharp.sevendays-study.com/

726 名前:名前は開発中のものです。 mailto:sage [2017/12/07(木) 23:51:35.97 ID:DyP8ts7O.net]
3Dゲームのプログラムは、3D空間上での挙動(移動と回転)がメインだから、
慣れればできると思うけど・・・

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

あとは、操作系を作りこんだり、挙動のパリエーションを増やしたり、
キャラを増やしたり、当たり判定を調整したり、試行錯誤

727 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 00:36:47.86 ID:Urki8ZVQ.net]
ちゃんと動くクソゲーの出来上がりってわけ

728 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 01:50:07.09 ID:rY92HIWe.net]
はい皆さんこんばんは。
気分が乗ったら講義のお時間です。

本日の講義は "ループ制御" です。
ループ制御は「プログラムの任意の場所を繰り返し実行させたい」ときに使うもので
"for文" と "while文" の2つを使います。

729 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 01:50:30.93 ID:rY92HIWe.net]
まずは for文 から説明します。
for文 は以下のように記述します。
[例]
int i=0;
for(i=0; i<10; i++){
 Debug.Log("i=" + i );
}

これは「{ }」に囲まれた箇所が10回繰り返される例です。
今回「{ }」に囲まれた部分は「Debug.Log("i=" + i );」なのでDebug.Logが10回実行されることになります。
1回実行される度に"i"は1ずつ加算されていきます。
結果「i=0」「i=1」…「i=9」と画面に表示されます。

それでは for文 自体の説明です。
「 for(@i=0; Ai<10; Bi++) 」
@"i=0;"…ここにはループのスタート値(初期値)を定義します。
       例えばここを"i=8"にすると0からのスタートではなく8からのスタートになるので
       ループ回数は10回ではなく「i=8」と「i=9」の2回しかループしなくなります。
       ちなみに今回は変数"i"を使用していますが好きな変数名でかまいません。
       またint型でなくbyte型でも構いませんがfloat型などの小数型は使えません。
A"i<10;"…ループ繰り返し条件式です。
       今回の例では「iの値が10より小さい(10は含まれず9以下)場合はループを繰り返す」という式になっています。
       例えば「i<=10」とすると
       「iの値が10以下場合はループを繰り返す」となり10も含まれます。
B"i++"…ループに使用している変数の増え方を指定します。
       この例の場合はiが1ずつ加算(増える)されていきます。
       「i=i+1」と同じです。



730 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 02:06:02.96 ID:rY92HIWe.net]
次に下の例を見てください。

[例]
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文 は繰り返しを実行し続けると思ってください。
上の例を言葉で表すと


731 名前:uiの中身が0より大きい場合、繰り返してください」となります。


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

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

このように継続条件式を書く部分はとても重要です。
[]
[ここ壊れてます]

732 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 02:18:02.11 ID:rY92HIWe.net]
[例]
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)


733 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 02:33:53.86 ID:rY92HIWe.net]
[例]
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文 は次回に持ち越し
今回は以上だクソども

734 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 02:35:04.69 ID:Urki8ZVQ.net]
最初から条件式が偽の場合の説明がないやん

735 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 09:34:46.35 ID:Qga/mJqt.net]
インポート時、プロジェクトの cs ファイル変更時におきる

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

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

対策あったら教えてください。お願いします。

736 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 10:04:46.10 ID:vndbYB6g.net]
>>704
対策案ですが、アセットを買ってみたらどうですか?

737 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 10:07:17.61 ID:Qga/mJqt.net]
>>705
どのアセットですか?

738 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 10:20:09.46 ID:0uuW61/P.net]
まーた中身を理解しないままパクッて使おうとしてるキムチか

739 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 12:50:56.59 ID:v80JBwFv.net]
プロジェクトウィンドウでC#スクリプトファイルを作成した際に、アイコンが通常のC#ではなく歯車になることがあります。
その条件と理由を教えて下さい。



740 名前:名前は開発中のものです。 mailto:sage [2017/12/08(金) 20:16:19.57 ID:q0nmqcMI.net]
>>702
ありがとうございます!!
ジェネリック関数の講義が待ち遠しい。

741 名前:名無し@キムチ [2017/12/09(土) 08:10:05.76 ID:1JEBIHPe.net]
やったー!!外部オーディオ鳴らすのに成功したーーーーっ!!!!
最初のりたまブログのこのコード見たけどダメだった・・・

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

742 名前:
yield return www;

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

audioSource.Play();
}
}

いろいろ試してみたけどダメで、挫折しそうになったが、
audioSource.clip = www.GetAudioClip(true, true);
の前の行に、
audioSource = GetComponent<AudioSource>();
というのを付け加えて、オブジェクトに空のオーディオソースコンポーネントを追加したところ、
音楽が鳴ったぁぁぁあああああーーーーーーーーっ!!!!!!!
いやあ、当方って天才かも!?(マジで)
みなさぁーーーーん、オーディオはコンポーネントで追加しなくても(空のコンポーネントは必要だけど)、
外から読み込んで使えるので、参考にしてくださいね。
(これはユーザーに自分の好きなゲームBGMを使ってもらうことができるすごい方法です!)
いやあ、当方って天才!!!!!!!!
[]
[ここ壊れてます]

743 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 12:22:44.90 ID:8nWowzmq.net]
スレチだったらごめん。
アクションゲームを作るために「ゲーム制作のための数学」系の本を
一冊買っておきたいんだけど、何かおすすめあります?
もしくはアルゴリズムの参考になるアセットがあったら教えてほしい。

744 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 13:07:47.43 ID:X9y8lbqo.net]
>>711
アクションゲームの完成プロジェクトアセットを購入しましょう

745 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 15:04:45.02 ID:Ia5bSAGk.net]
>>709
残念ながらジェネリック関数を扱う予定はなし

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

746 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 16:49:05.54 ID:G7HaLFZX.net]
>>711

2Dか3Dかで変わってきます

747 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 16:59:09.75 ID:8nWowzmq.net]
>>712-714
ごめん、2Dです。
マリオとかメトロイドヴァニア系のアクションをを作る予定ですが、ショットをちゃんとした物理的な挙動にしたいのと、
あと飛行タイプの敵とか動く足場とかを∞←こういう軌道で動かしたりしたいんですよね。

748 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 17:05:16.75 ID:x1Unwj8Y.net]
unityの2Dでマリオ3みたいなやつでお手本になるゲームないでしょうか
マリオランみたいに一方にしか移動しないようなのじゃなくて

749 名前:名前は開発中のものです。 [2017/12/09(土) 17:27:29.06 ID:1JEBIHPe.net]
PC内にあるすべてのwav音を鳴らすテストです。
この機能を取り入れれば、当方のソフト「振付王」も大いなる飛翔を遂げそうです ↓

https://youtu.be/NGglm32__Wg



750 名前:ダーク王鍬大使 mailto:sage [2017/12/09(土) 18:04:15.09 ID:bXsi3c78.net]
>>717
キャラクターがすごく不気味でふ(^^
これがキムヨナでふか?(^^

751 名前:名前は開発中のものです。 [2017/12/09(土) 20:05:37.92 ID:AnRI3nPF.net]
staticの変数(gameobject)をインスペクターから指定できないと知り、直接インスタンス化したいのですが、
Assets/Prefabsにあるprefabを指定するにはどうすれば良いでしょうか?

Instantiate(GameObject.Find(?????));

752 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 20:14:33.20 ID:X9y8lbqo.net]
>>719
あなたにはプログラムの才能がないのでアセット購入することをオススメします

753 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 20:16:11.59 ID:x1Unwj8Y.net]
unityの2Dでマリオ3みたいなやつでお手本になるゲームないでしょうか
マリオランみたいに一方にしか移動しないようなのじゃなくて

754 名前:ダーク王鍬大使 mailto:sage [2017/12/09(土) 20:21:04.14 ID:bXsi3c78.net]
>>719
GameObject.Findはヒエラルキー上のものを探すためのものでふよ(^^

755 名前:ダーク王鍬大使 mailto:sage [2017/12/09(土) 20:36:13.31 ID:bXsi3c78.net]
>>719
何をしたいのかよく分かりまふぇんがググって調べてきまひた(^^

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

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

あとはインスペクタから使いたいプレファブをアタッチする(^^
これでスクリプトを張り付けてるオブジェクトの位置にprefabにアタッチしたPrefabを生成しまんこ(^^

756 名前:名前は開発中のものです。 [2017/12/09(土) 20:55:03.78 ID:AnRI3nPF.net]
>>723
めちゃくちゃ言葉足らずですいません。
他スクリプトから呼び出すためにそのスクリプトをstaticで構成しました。

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

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

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

この中のどれかを募集中です。

757 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 21:06:17.43 ID:X9y8lbqo.net]
>>724
アセット購入を募集していませんか?

758 名前:ダーク王鍬大使 mailto:sage [2017/12/09(土) 21:08:54.73 ID:bXsi3c78.net]
(3)別スクリプトから呼び出しならstatic使わなくてもできまふよ(^^

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

多分これで出来ると思いまんこ(^^

759 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 21:52:29.85 ID:+Fgkmrfl.net]
ファイアーエムブレムのようなゲームが作りたくて参考書などを見ながらAI作ってたのですが上手く行きません
数千円以内で買えるアセットでよさげなのないでしょうか



760 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 21:53:01.42 ID:G7HaLFZX.net]
3Dで基礎から勉強したければ、

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

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

「アクションゲームアルゴリズムマニアックス」
「アクションゲームプログラミング」

761 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 21:59:20.31 ID:G7HaLFZX.net]
>>724

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

ただ他のオブジェクトのコンポーネントを使いたいだけだったら、
Staticを付けなくても、呼び出して利用はできます

762 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 22:47:51.06 ID:Ia5bSAGk.net]
どうも。
気分がノッたら講義のお時間です。
"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が必要になってしまいます。

763 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 22:48:34.64 ID:Ia5bSAGk.net]
次に 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" には配列の最大値が格納されています。

764 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 22:53:43.28 ID:Ia5bSAGk.net]
また、配列処理に特化した専用のfor文といえる "foreach文" というのもありますが
for文で同じ事が出来る為講義ではあえて扱いません。
興味がある方は下のリンク先で確認してください。
今のあなたならリンク先の文章をなんとなく理解できる事でしょう。

配列での foreach の使用 (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/arrays/using-foreach-with-arrays


本日は以上だクソども

765 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 23:01:42.72 ID:Ia5bSAGk.net]
>>721
全13回の講座。
焦らずこれをじっくりやるといい。
hiyotama.hatenablog.com/entry/2015/06/12/153523

766 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 23:07:35.86 ID:Ia5bSAGk.net]
>>715
メトロイドヴァニアをYoutubeで拝見したがいきなりこれは難しいよ。
物理的な挙動に関してはUnityは物理エンジンが勝手にやってくれるので自分でプログラムする必要がない。

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

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

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

俺は本を買って学習してる訳ではないのでオススメを教えられないです。

767 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 23:17:08.96 ID:0z0JcPwI.net]
>>732
ありがとうございます!!!

768 名前:名前は開発中のものです。 mailto:sage [2017/12/09(土) 23:28:03.66 ID:MExT9ytU.net]
これでまた、staticおじさんが一人この世から消えたのか

769 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 09:21:41.45 ID:rk89KMyG.net]
static変数にする
static関数にする
staticゲームオブジェクトにする
詰む



770 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 11:44:53.32 ID:ZDcJFyIw.net]
>>724
そういう用途でstaticにするのは辞めたほうが……
シングルトンにしてDontDestroyと思う

それはそれとしてインスペクターのをstatic変数に反映させたいだけなら
責任は持ちません
public static GameObject hoge;
public GameObject hogehoge;
void awake(){
  if(hogehoge != null) hoge = hogehoge;
}

771 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 11:48:33.38 ID:jcS8iLKb.net]
staticをpublicでインスペクターから変更できるようにしてしまうと、

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

シングルトン機能がないと、どの設定値を参照するか不定になりそうで怖い・・・
設定値は複数オブジェクト間のインスペクター上で連動するのかな?

772 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 13:12:35.06 ID:s0gCGNcz.net]
ここはプログラムの初心者ばかりなので
素直にアセットを買って作りましょう

773 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 13:34:04.81 ID:w46kXA82.net]
・変更できない定数
・グローバルDBで管理(public)
・クラスの内部だけで決められた使い方だけをする構造上の黒子(private)

このうちのどれかに当てはまらないなら static はやめたほうがいい

774 名前:名前は開発中のものです。 [2017/12/10(日) 17:15:40.51 ID:51pDRWFr.net]
>>738
>>739
>>741

ありがとうございます。
staticで構成するのはやめようと思います

話は変わりますが、っていうか変わってないんですが
Ascript:
public void Hoge(){
StartCoroutine(Bscript.Bfunction());
}

Bscript
public IEnumerator Bfunction(){
Debug.Log("hogehoge");
yield return null;
}

このスクリプトで「静的でないフィールド〜〜〜」というエラーが出るのはなぜでしょうか?

これがきっかけでstaticにするようになったのですが

775 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 17:20:13.69 ID:SGu7Clqn.net]
>>742
その表記を見ただけでオブジェクト指向を微塵も理解してないと分かる
C#の基本を解説するサイトなんていくらでもあるから少なくともclassの存在くらい学ぼう

776 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 17:50:24.06 ID:s0gCGNcz.net]
>>742
だから、あなたはプログラマーには向かないので
アセットを買って幸せになりましょう

777 名前:I []
[ここ壊れてます]

778 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 18:02:07.77 ID:s1u45m25.net]
>>742
ゲットコンポーネントの事をもうちょっと理解した方が良いと思います。

779 名前:名前は開発中のものです。 [2017/12/10(日) 20:14:32.33 ID:RELYBK2b.net]
>>743
こういうとこで質問したことないんでどこまで省いていいか全然わからないです;;
クラスは何もいじっていないので
public class XXXX : MonoBehaviourのままです。

>>745
GetComponent?ゲットコンポーネントってどこからでてきました?



780 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 20:23:19.38 ID:hR3NFn4T.net]
スクリプト(コンポーネント)は同じとこに書いてないもんは知りませ〜ん

781 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 20:46:48.97 ID:s1u45m25.net]
>>746
とりあえず「他のスクリプトのメソッドを使う unity」で検索してみろ。それで理解できなかったら向いてない

782 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 21:11:13.87 ID:gqP0KwJW.net]
>>746
言語知識がある程度でもあるならまだしもそうじゃないなら基本的には何も省略しないで

783 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 21:35:27.73 ID:s0gCGNcz.net]
だから、アセットを買えばいいんですよ
スクリプト出来なんでしょ?

784 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 22:14:38.78 ID:s1u45m25.net]
>>742
静的じゃないから〜ってエラーを見て、staticおじさんになっちゃったのか。
そのエラーの意味は「君が使おうとしているモノは最初から存在しない(静的でない)のでなんとかしてください」って意味だから「staicにしろ」って意味じゃないぞ

785 名前:名前は開発中のものです。 [2017/12/10(日) 22:16:05.06 ID:51pDRWFr.net]
>>748
>>749
>>751
ありがとうございます。
アタッチするオブジェクトに関連してないとアタッチしてはいけないと勝手に思い込んでいました。

>>742で言えば
カメラなりなんなりにBscriptをアタッチして
StartCoroutine(カメラ.GetComponent(Bscript).Bfunction());
って感じにすればよかったんですね

786 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 22:41:19.18 ID:s1u45m25.net]
>>752
目標がありそれに向かってコーディングしてることは分かりますし、それは上達への近道です。しかしあなたの書いているコードはあまりにも支離滅裂なので簡単な内容からしっかり学習してください。他のスクリプトのコルーチン使うとかめんどくさすぎて頭おかしいです

787 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 23:01:38.15 ID:hR3NFn4T.net]
まあプログラムなんて技量あげるうちに過去コードを色々短縮出来るのが楽しいから…

788 名前:名前は開発中のものです。 mailto:sage [2017/12/10(日) 23:47:55.77 ID:CuU55Myq.net]
もともとは、AsstesフォルダにあるPrefabを、スクリプト上で呼び出したかっただけだよね?
Sceneに配置していないPrefabを、GameObjectとして呼び出したいんだよね??

例えば、SceneにPlayerキャラクタが既にいて、ボタン入力に応じて、
Assets内にあるShotキャラクタを呼び出して、弾丸として発射するみたいな・・・

789 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 00:11:47.56 ID:SkZjimvo.net]
<スクリプトAで、Assets内のプレハブBを、ゲームオブジェクトCとして取得する方法>

Scece上に配置したゲームオブジェクトXに、下記のスクリプトAを登録しておきます。

public class A : MonoBehaviour {
 public GameObject B;

 // Use this for initialization
 void Start () {
  GameObject C = (GameObject)Instantiate(B);
 }
}

Inspector上でゲームオブジェクトBを登録できるので、
Assets内のプレハブBを登録しておきます。
「Assetss」を押すと一覧が出ます。

動的にBのインスタンスを生成して、ゲームオブジェクトCとして格納します。
以下、Inspector上で登録しておいたゲームオブジェクトBは、
ゲーム内ではゲームオブジェクトCとして実体化されているので、
移動させたり、回転させたり、いろいろできます。



790 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 00:30:42.08 ID:SkZjimvo.net]
C = (GameObject)Instantiate(B)
だと、スクリプトを登録したオブジェクト上に生成されてしまいます。

生成される際の
 位置を、Vector3 V = new Vector3(x, y, z)
 向きを、Quaternion Q = Quaternion.Euler(angleX, angleY, angleZ)
 親を、transform T = parent.transform
としたい場合は、

C = (GameObject)Instantiate(B, V, Q, T)
とします。

親Tの子として、向きQで、位置Vに、
Bのインスタンスが、オブジェクトCとして生成されます。

BにRigidbodyを登録しておけば、
Rigidbody D = C.GetComponent < Rigidbody2D >
によって、CのコンポーネントからRigidbodyを取得して、
変数DにRigidbodyを格納しておくこともできます。

以降は、物理演算ができるようになり、
D.velocity = new Vector3(vx, vy, vz)
のようにして速度を変更したりできます。

791 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 00:39:32.37 ID:SkZjimvo.net]

Rigidbody D = C.GetComponent < Rigidbody2D >


Rigidbody D = C.GetComponent < Rigidbody >

普段、2Dばっかりやっているから間違えた・・・

要するに、
@Hierarchyになくても、Assetsからでも呼び出せる
(GameObject.Findは、Scene内から探すためダメです)

AStaticにしなくても、Inspector上からPrefabを登録できる
(Inspector上で設定したかったら「public」です)

Bスクリプトを登録する相手は、何でも良い
(カメラでも、空のオブジェクトでも・・・)

 ただ、あるキャラクタから発射するつもりなら、
 そのキャラクタにスクリプトを登録しておけば、
 発射位置が、そのキャラクタの現在地になります。

792 名前:名前は開発中のものです。 [2017/12/11(月) 07:52:58.63 ID:Lx/f51q7.net]
レベルデザインしてるんですが、フリーでおすすめのアセットパックってないですか?
人工物や自然物がそれなりに入ってるのがほしいですが

793 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 11:46:03.41 ID:QvFVBkNr.net]
>>759
フリーアセットではなく、有料アセットを購入しましょう

794 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 13:13:39.39 ID:xcDA2XWm.net]
車の排気ガスでパーティクルを使おうと思ってます
車の後方から煙が出る形にしたいんですが、

1 車のオブジェクトにパーティクルをaddして良いのか
2 どうやってパーティクル位置を変更するのか(車の後方に)

の最初の2点で躓いてます
どなたか教えて頂きたいです。

795 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 13:18:21.91 ID:HEOTRILb.net]
車に空の子オブジェクトを追加してそこにパーティクルを追加すればいいべ

そういうことじゃなくて?

796 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 13:52:42.53 ID:QvFVBkNr.net]
>>761
車の排気ガスのアセットをかうと良いですよ

797 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 14:25:47.65 ID:xcDA2XWm.net]
>>762
車とは別に新しくオブジェクト作って、
それにパーティクル追加してあとから車と同期(車と一緒に動くように)すればいいって事ですか?

798 名前:ダーク王鍬大使 mailto:sage [2017/12/11(月) 14:30:15.62 ID:V8qj051b.net]
パーティクルを車の子オブジェクトにして位置と向きをインスペクターで変えてくらふぁい(^^

799 名前:ダーク王鍬大使 mailto:sage [2017/12/11(月) 14:31:22.80 ID:V8qj051b.net]
ってよく見たら>>762に答えが書いてありまひた(^^
お節介失礼しまんこ(^^
ボッキング!(^^



800 名前:名前は開発中のものです。 mailto:sage [2017/12/11(月) 14:58:00.33 ID:HEOTRILb.net]
>>764
車の子オブジェクトにすればわざわざ同期なんて取らなくても相対位置と向きを保ったまま車と一緒に動いてくれるでしょう






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<338KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef