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

■ このスレッドは過去ログ倉庫に格納されています
1名無し@キムチ
垢版 |
2017/10/30(月) 05:05:35.00ID:xnHTCaF3
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

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

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

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

前スレ
【3Dゲームエンジン】Unity質問スレッド31
https://mevius.5ch.net/test/read.cgi/gamedev/1504366121/
2017/12/05(火) 18:04:55.06ID:tIZxQtdd
Vs vscode sublime なら ユーザー定義関数名を選択してF12 キーで定義元に移動できる。pc前にいないので未確認。

>644
phisics material2dを作成して、rigidbodyに割り当てる。
パラメータ名は忘れた。
2017/12/05(火) 19:02:48.32ID:/voPq5NM
>>647

Assetで揃えたデータの場合、
足りないものだけは自作という状況はあり得ると思うけど

>>649

自分も、DrawLineだけだと思っていた
Arrow出せたら、わざわざConeは用意しなかったのもわかる気がする
2017/12/05(火) 19:30:57.47ID:ye5fpjxg
立体回転は、立方体みたいな対称図形は、正面がどっち向いているか、パッと見ではわらなくなるから、
これまではtransform.forwardでLineを描画してたんだけど、
矢印を出せるなら、これからそっちでやろう〜っと
2017/12/05(火) 19:39:51.65ID:Z564PTO0
Handles系ってOnDrawGismoでいける?
Label表示はいけるのは知ってるけど、それでも#ifでunityeditorをusingしないといけんのでだるい
OnSceneGUIはだるくねか
2017/12/05(火) 19:50:01.59ID:zoVmnc0h
おっぱいコーナー早いな今日
2017/12/05(火) 20:01:15.65ID:Z564PTO0
あとハンドルはサイズ指定だるいよね
gizmo系と同じように扱えない気がするで
2017/12/05(火) 20:07:30.89ID:Xdk/T4FC
>>651
あぁ、そうか、アセット使うとそうだね。
すまん、俺はアセットモデル入れた事無いので及ばんかった。
2017/12/05(火) 21:13:25.05ID:jQ+ecE7h
RXNは、Unityエンジンを使ったお仕事をしている会社にもプレイしても
らいたいです。爆速のロード、スパイクもなく秒間60フレームでの軽快な動
作(処理落ちはします)。弊社がこれを実現したのだから、安心して余裕で
参入できると思います。でも技術の開示は一切しません。

https://togetter.com/li/21156
面白法人カヤックの学生絵描き買い叩き問題のまとめ
2017/12/05(火) 22:41:20.71ID:ye5fpjxg
>>649

それ、シーンビュー上でオブジェクトを選択した時に表示される矢印の編集オプションっぽい

つまり、プレイ中に普通に扱うオブジェクトとは違う様子

言ってみれば、デバッグラインやギズモの扱いでは・・・

実際にオブジェクトとして存在するプリミティブとはチャット使い勝手が違うな〜

矢印で方向がわかるDrawLineといった感じ
しかも、基本的に選択中のオブジェクトに限定しての表示

あと、昔はHandles.ArrowCap、今はArrowHandleCap
2017/12/05(火) 22:44:37.44ID:ye5fpjxg
<訂正>

>>649

それ、シーンビュー上でオブジェクトを選択した時に表示される矢印の編集オプションっぽい

つまり、プレイ中に普通に扱うオブジェクトとは違う様子

言ってみれば、デバッグラインやギズモの扱いでは・・・

実際にオブジェクトとして存在するプリミティブとはちょっと使い勝手が違うな〜

矢印で方向がわかるDrawLineといった感じ
しかも、基本的に選択中のオブジェクトに限定しての表示

あと、昔はHandles.ArrowCap、今はHandles.ArrowHandleCap
旧:(int controlID, Vector3 position, Quaternion rotation, float size);
新:(int controlID, Vector3 position, Quaternion rotation, float size, EventType eventType);

5.x系に比較して、2017では、引数が最後の1項目増えた様子
2017/12/05(火) 22:53:39.52ID:WJDqO2la
やはり、チャット使い勝手、が気になりましたか。
2017/12/06(水) 07:10:04.54ID:FKi3w4DB
unity製でお手本になりそうなゲームをいくつか教えてください
2017/12/06(水) 07:24:52.33ID:hByeQDu+
マリオラン、ポケゴ、白猫
2017/12/06(水) 10:32:23.14ID:WHEH+2xJ
>>650
monodevelop使ってるので無理ですか。

教本の著者はユーザー定義関数に必ずそれっぽい英語をつかうので(変数にも)、それがビルトイン関数なのかオレみたいな初心者は迷わされる。
2017/12/06(水) 11:23:15.06ID:HqLW9Y2x
使ってないからしらんけどmonodevellopでもメソッドの実装元へジャンプするコマンドは普通にあると思う。
てかそれがないIDE見たことない。コンテキストメニューにないの?
2017/12/06(水) 11:28:48.42ID:HqLW9Y2x
一番上にあんじゃん・・・
2017/12/06(水) 11:56:51.35ID:OHoVed9U
monoでもソース参照してたから、間違いなくできるわw
667名無し@キムチ
垢版 |
2017/12/06(水) 17:23:56.90ID:dzbC/kNJ
>>657
RXNのデモ動画、音が割れていますが・・・w
2017/12/06(水) 19:28:32.48ID:WHEH+2xJ
>>664
ありがとうございます。使い方がわかりました。goto decrearation してassembleファイルに飛ぶのがビルトインなんですね。
こんな機能まったく知りませんでした。
2017/12/06(水) 19:48:39.72ID:/LdYoNHU
OverlapBoxを使うと、メモリーリークしちゃうんですか??
670名前は開発中のものです。
垢版 |
2017/12/06(水) 22:05:08.62ID:mZdZLUg5
表情アニメーションにブレンドシェイプを使うためにモデルの頭と体を切り離したんですが、どうしても境目が目立ってしまいます。
上手く境界線を目立たなくする方法をご存知の方がいましたら教えて頂けると助かります
(UnityちゃんとかはToonシェーダ上手く使ってごまかしてますけど、今回はStandardシェーダーのようなリアルな質感のものを使いたいです)

ちなみに首元で切って服を着せることも考えましたが、水着など首元の見える衣装替えを実装予定なのでそれも難しいです…
2017/12/06(水) 23:07:13.87ID:uMVQKnqp
>>669
しないよ

>>670
使ったことなくて力になれないんだけど、表情変えるのに首で切るもんなん?のっぺらぼうと表情じゃだめなん?
2017/12/06(水) 23:27:30.10ID:Qzkk8sf8
言ってることば無茶苦茶過ぎて相手にするだけ無駄
首切ろうがきるまいが関係ないしユニティちゃんがスタンダードシェーダー使っても問題ないし
2017/12/06(水) 23:55:48.89ID:lMvDYGo7
>>670
だからよ
質問の時だけコテハン外して人を騙そうとしてるその魂胆がいけすかねーって言ってんだよキムチ!!
おいキムチ!!
バレてんだぞキムチ!!!!
2017/12/07(木) 05:31:08.71ID:TfLDssMU
エスパー案件で申し訳ないのですが
エディタのゲームビューでは表示されているオブジェクトが
スマホの実機上で表示されない場合どこを疑えばいいのでしょうか

対象はUIのボタンでエディタから静的にに配置した場合表示されますが
スクリプトからアクティブ切り替えやインスタンス生成した場合に表示されません
2017/12/07(木) 09:09:39.86ID:NWPNPY2x
新規プロジェクトを作って、対象のボタンと処理だけつけてビルドしてみる。

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

何か変化したら、コメントアウトを少しづつ外して、問題のあるスクリプトを探していく。

変わらないなら、ボタンかCanvasの
インスペクターウィンドウでの設定に問題があるのかも。
2017/12/07(木) 13:50:45.87ID:xK05b4bo
>>674
アセットを買うのが解決の早道ですよ!
2017/12/07(木) 14:07:34.77ID:QBK35S4q
アセトンとは、ケトンの分類の中でも1番単純な構造を持っており、分子が小さいので溶けやすく、水にも、ほとんどの油脂にも溶けるので、様々な用途に有機溶媒として用いられている物質である。
2017/12/07(木) 16:34:15.05ID:TdH7rlV1
カキーン + _____ *
   / //  /|
  | ̄/  ̄ ̄|//|
  |/∧_∧/|/ |
* | (´・ω・)| | +
  | (/o旦o | |
  |/ー―-′|/
 *  ̄ ̄ ̄ ̄ ̄
2017/12/07(木) 16:43:23.82ID:oyXAQYK2
オブジェクトの外周をもやっと光らせる表現ってどうやってるんだろう
単純に形状に対応したパーティクル作ってるだけ?
2017/12/07(木) 17:48:46.63ID:4zStDQvW
マスク切って発光でフラクタルノイズ重ねてグロー掛けるとか
2017/12/07(木) 17:52:05.62ID:4zStDQvW
ごめんAEスレと間違えた
2017/12/07(木) 18:22:14.81ID:C5TGB3mz
パーティクルでもポストエフェクトでもエミッシブでもできる
ケースバイケース
683名無し@キムチ
垢版 |
2017/12/07(木) 19:24:09.17ID:hswJM9ej
>>673
残念だが>>670の質問は当方のものではない。
また当方は質問のときだけコテハン外したりはしない。
ただうっかりしてコテハンつけ忘れたことはあるが、それも2〜3回程度だw
キミはあまりレベルが高くないようだな・・
2017/12/07(木) 19:32:41.25ID:5K/yowW4
>>676
プログラム素人でfbxで物作るだけの人は
どんなアセット買えばいいのですか
685名無し@キムチ
垢版 |
2017/12/07(木) 19:43:06.82ID:hswJM9ej
>>684
アセット買うよりも、つくったfbxをアセットにして販売するほうがいいと思います。
とくできていればアセットの審査にも通るでしょう。
ただアセットは登録の申請がチョー複雑で難しいです。プログラムの100倍は難しいと思ったほうがいいでしょう。
当方も申請の仕方がよく理解できずに、挫折したひとりですw
2017/12/07(木) 19:57:53.21ID:xK05b4bo
>>684
完成プロジェクト系のアセットがいいですよ。
素材を揃えることできれば簡単にゲーム化できます。
687名無し@キムチ
垢版 |
2017/12/07(木) 20:16:46.23ID:hswJM9ej
よくここでC♯プラグラムの講座をしている人は、
それよりアセットの登録の仕方を、小学3年生でもやかるような簡単な言葉で、
最初から順序よく、欠落した部分がないように、懇切丁寧に述べていただければ助かります。

小学3年生(その中でも落ちこぼれ生徒)のための、アセット登録申請講座、ぜひやっていただきたい!!!
2017/12/07(木) 20:51:22.30ID:4indIwx4
bolt使ってる人いる?
フローグラフとステートグラフがあるのは相当整理しやすそうだけど機能や操作性はplaymakerと比べてどんな感じ?
2017/12/07(木) 20:54:28.81ID:TfLDssMU
>>674
この質問わかる方いませんか?
2017/12/07(木) 20:59:33.67ID:KQoomDkR
申し訳ないなら書くなバカ
2017/12/07(木) 20:59:47.59ID:4zStDQvW
>>689
このスレにはそんな難しい質問に答えられる奴はいない。
TwitterやFacebookで現役のエンジニアに質問してみたまえ
2017/12/07(木) 21:22:46.91ID:xK05b4bo
>>689
アセットをかえばいいんじゃないですか?
2017/12/07(木) 21:23:50.82ID:oxqTCZ+G
>>689
回答されてるじゃん、まずそれやってみなよ。
そんで、やった結果をかきなって。
2017/12/07(木) 21:50:41.87ID:NWPNPY2x
>>684
アセットのことはよく知らないけど、プログラムで動かす方法が一番普及してて、検索すれば情報もたくさん出てくるので習得しやすい気がする。

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

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

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

本日の講義は "ループ制御" です。
ループ制御は「プログラムの任意の場所を繰り返し実行させたい」ときに使うもので
"for文" と "while文" の2つを使います。
2017/12/08(金) 01:50:30.93ID:rY92HIWe
まずは 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」と同じです。
2017/12/08(金) 02:06:02.96ID:rY92HIWe
次に下の例を見てください。

[例]
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を強制終了しないと終わらせられなくなります。
強制終了のやり方が分からない人は絶対に実行しないでください。

このように継続条件式を書く部分はとても重要です。
2017/12/08(金) 02:18:02.11ID:rY92HIWe
[例]
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)
2017/12/08(金) 02:33:53.86ID:rY92HIWe
[例]
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文 は次回に持ち越し
今回は以上だクソども
2017/12/08(金) 02:35:04.69ID:Urki8ZVQ
最初から条件式が偽の場合の説明がないやん
2017/12/08(金) 09:34:46.35ID:Qga/mJqt
インポート時、プロジェクトの cs ファイル変更時におきる

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

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

対策あったら教えてください。お願いします。
2017/12/08(金) 10:04:46.10ID:vndbYB6g
>>703
対策案ですが、アセットを買ってみたらどうですか?
2017/12/08(金) 10:07:17.61ID:Qga/mJqt
>>704
どのアセットですか?
2017/12/08(金) 10:20:09.46ID:0uuW61/P
まーた中身を理解しないままパクッて使おうとしてるキムチか
2017/12/08(金) 12:50:56.59ID:v80JBwFv
プロジェクトウィンドウでC#スクリプトファイルを作成した際に、アイコンが通常のC#ではなく歯車になることがあります。
その条件と理由を教えて下さい。
2017/12/08(金) 20:16:19.57ID:q0nmqcMI
>>701
ありがとうございます!!
ジェネリック関数の講義が待ち遠しい。
709名無し@キムチ
垢版 |
2017/12/09(土) 08:10:05.76ID:1JEBIHPe
やったー!!外部オーディオ鳴らすのに成功したーーーーっ!!!!
最初のりたまブログのこのコード見たけどダメだった・・・

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を使ってもらうことができるすごい方法です!)
いやあ、当方って天才!!!!!!!!
2017/12/09(土) 12:22:44.90ID:8nWowzmq
スレチだったらごめん。
アクションゲームを作るために「ゲーム制作のための数学」系の本を
一冊買っておきたいんだけど、何かおすすめあります?
もしくはアルゴリズムの参考になるアセットがあったら教えてほしい。
2017/12/09(土) 13:07:47.43ID:X9y8lbqo
>>710
アクションゲームの完成プロジェクトアセットを購入しましょう
2017/12/09(土) 15:04:45.02ID:Ia5bSAGk
>>708
残念ながらジェネリック関数を扱う予定はなし

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

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

https://youtu.be/NGglm32__Wg
2017/12/09(土) 18:04:15.09ID:bXsi3c78
>>716
キャラクターがすごく不気味でふ(^^
これがキムヨナでふか?(^^
718名前は開発中のものです。
垢版 |
2017/12/09(土) 20:05:37.92ID:AnRI3nPF
staticの変数(gameobject)をインスペクターから指定できないと知り、直接インスタンス化したいのですが、
Assets/Prefabsにあるprefabを指定するにはどうすれば良いでしょうか?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ただ他のオブジェクトのコンポーネントを使いたいだけだったら、
Staticを付けなくても、呼び出して利用はできます
2017/12/09(土) 22:47:51.06ID:Ia5bSAGk
どうも。
気分がノッたら講義のお時間です。
"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が必要になってしまいます。
2017/12/09(土) 22:48:34.64ID:Ia5bSAGk
次に 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" には配列の最大値が格納されています。
2017/12/09(土) 22:53:43.28ID:Ia5bSAGk
また、配列処理に特化した専用のfor文といえる "foreach文" というのもありますが
for文で同じ事が出来る為講義ではあえて扱いません。
興味がある方は下のリンク先で確認してください。
今のあなたならリンク先の文章をなんとなく理解できる事でしょう。

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


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

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

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

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

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

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

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

シングルトン機能がないと、どの設定値を参照するか不定になりそうで怖い・・・
設定値は複数オブジェクト間のインスペクター上で連動するのかな?
2017/12/10(日) 13:12:35.06ID:s0gCGNcz
ここはプログラムの初心者ばかりなので
素直にアセットを買って作りましょう
2017/12/10(日) 13:34:04.81ID:w46kXA82
・変更できない定数
・グローバルDBで管理(public)
・クラスの内部だけで決められた使い方だけをする構造上の黒子(private)

このうちのどれかに当てはまらないなら static はやめたほうがいい
741名前は開発中のものです。
垢版 |
2017/12/10(日) 17:15:40.51ID:51pDRWFr
>>737
>>738
>>740

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

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

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

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

これがきっかけでstaticにするようになったのですが
2017/12/10(日) 17:20:13.69ID:SGu7Clqn
>>741
その表記を見ただけでオブジェクト指向を微塵も理解してないと分かる
C#の基本を解説するサイトなんていくらでもあるから少なくともclassの存在くらい学ぼう
2017/12/10(日) 17:50:24.06ID:s0gCGNcz
>>741
だから、あなたはプログラマーには向かないので
アセットを買って幸せになりましょう!
2017/12/10(日) 18:02:07.77ID:s1u45m25
>>741
ゲットコンポーネントの事をもうちょっと理解した方が良いと思います。
745名前は開発中のものです。
垢版 |
2017/12/10(日) 20:14:32.33ID:RELYBK2b
>>742
こういうとこで質問したことないんでどこまで省いていいか全然わからないです;;
クラスは何もいじっていないので
public class XXXX : MonoBehaviourのままです。

>>744
GetComponent?ゲットコンポーネントってどこからでてきました?
2017/12/10(日) 20:23:19.38ID:hR3NFn4T
スクリプト(コンポーネント)は同じとこに書いてないもんは知りませ〜ん
2017/12/10(日) 20:46:48.97ID:s1u45m25
>>745
とりあえず「他のスクリプトのメソッドを使う unity」で検索してみろ。それで理解できなかったら向いてない
2017/12/10(日) 21:11:13.87ID:gqP0KwJW
>>745
言語知識がある程度でもあるならまだしもそうじゃないなら基本的には何も省略しないで
2017/12/10(日) 21:35:27.73ID:s0gCGNcz
だから、アセットを買えばいいんですよ
スクリプト出来なんでしょ?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況