トップページgamedev
1001コメント352KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。2014/05/08(木) 08:44:31.15ID:3QHRiisF
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。

Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3他

次スレは>>970を踏んだ方が建てること。ダメなら>>980>>990が建てて下さい。

■前スレ
【3Dゲームエンジン】Unity質問スレッド8
http://toro.2ch.net/test/read.cgi/gamedev/1394451694/

■本スレ
【3Dゲームエンジン】Unity総合スレッド22
http://toro.2ch.net/test/read.cgi/gamedev/1395140574/

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
 http://www24.atwiki.jp/unity2ch/
●リンク
・Unity(日本公式サイト)
 http://unity3d.com/japan/
・ユーザーガイド&リファレンス
 http://japan.unity3d.com/developer/document/
・チュートリアル
 http://japan.unity3d.com/developer/document/tutorial/
・スクリプトリファレンス
 http://docs-jp.unity3d.com/Documentation/ScriptReference/
・FAQ
 http://answers.unity3d.com/index.html
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
0923名前は開発中のものです。2014/06/24(火) 16:06:25.48ID:IGSAf2uf
標準にはついてないのか・・・全画面は苦手なんだよなあ
0924名前は開発中のものです。2014/06/24(火) 16:21:19.74ID:dEmuuQyV
>>922
たとえばどんな?
0925名前は開発中のものです。2014/06/24(火) 16:28:09.13ID:6/T6s6wx
>>921
まぁ確かにできるけどそれだったら最初からVSでゴリゴリ書いた方が楽な希ガス。
プラグイン関係デバッグがめんどくさいのよね。>>Unity
0926名前は開発中のものです。2014/06/24(火) 16:56:55.50ID:foPHixvq
>>925
あセットかったらデバッグも楽ですよ
0927名前は開発中のものです。2014/06/24(火) 16:59:45.62ID:dEmuuQyV
>>926
たとえばどんな?
0928名前は開発中のものです。2014/06/24(火) 19:24:36.30ID:Expqq7lH
2Dゲー作るならやっぱり2D系のコンポーネント使った方がいいんでしょうか
それとも普通のrigidbodyとかの方がいいですか?
後々全部変えるとなると手間がすごいので、できれば最初に決めておきたいと思います
0929名前は開発中のものです。2014/06/24(火) 19:26:15.24ID:GmgytiWG
Spriteが必須になるから2Dにしとけ
0930ヤジ事件音声鑑定結果wwwwwwwwwwww2014/06/24(火) 19:28:12.57ID:Expqq7lH
専門家「ヤジのあと0.16秒後に別のヤジが飛んでいる」
専門家「声の周波数も鈴木議員とは40Hz程違う」
専門家「少なくとももう1人別の人間がヤジを飛ばしています」

0.16秒wwwwwwwwwww40Hzwwwwwwwwwwwwwwwwwwww
くっだらなさすぎワロwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0931名前は開発中のものです。2014/06/24(火) 19:33:15.06ID:R9iWmKfZ
うわあ
0932名前は開発中のものです。2014/06/24(火) 20:52:06.79ID:foPHixvq
>>930
アセットを購入すると聴き取れると思いますよ
0933名前は開発中のものです。2014/06/24(火) 21:16:46.26ID:CFsw8I95
空白レスが多くて草生えるwww
0934名前は開発中のものです。2014/06/24(火) 23:14:41.03ID:WRnNJvD+
parentObjectとchildObjectを即席で作ってparentObjectに以下のjsを入れ込んだのですが

function Start () {
parentObject.transform.parent = childObject.transform;
}

UnityEngine.Component' is required to access non static member 'transform'
とかエラーでできません・・・
0935名前は開発中のものです。2014/06/24(火) 23:45:23.85ID:R9iWmKfZ
本でも買って基礎からやった方がいいのでは…

スクリプトを付けたオブジェクトのtransformを取得する場合はgameObject.transformまたは単にtransformだけでいい
子オブジェクトから親を取得する場合はtransform.parentでいいが親から子を取得するにはfindしないといけない
0936名前は開発中のものです。2014/06/24(火) 23:51:40.28ID:foPHixvq
>>934
ASSETSTOREでかえばいいとおもうけどね
0937名前は開発中のものです。2014/06/25(水) 00:11:16.58ID:kLn56OUm
C#でスマホ対応の脱出ゲームを作ってみたいのですが
参考にする本は「Unityによる2Dゲーム開発入門」で大丈夫でしょうか。
初心者向けかつ、最後にタッチでアクションを起こすものが載っているそうで、
色々なサイトを調べてもまともに理解できない程の素人が買うには丁度良さそうな
気がしています。
もっと脱出ゲームを作るうえで為になる本ってありますか?
0938名前は開発中のものです。2014/06/25(水) 00:27:19.23ID:TZSzNseo
その本、おれももってるけど、ぜんぜん使えないよ。
まして脱出ゲームは作れない。
0939名前は開発中のものです。2014/06/25(水) 00:56:28.69ID:FZD9B5lf
脱出ゲームに必要な知識をピンポイントで学べる本ってのも難しいな
基礎中の基礎はその本でも分かるみたいだから
それ読んでから足りない部分をネット検索で補うようにしてみたらいいのでは
0940名前は開発中のものです。2014/06/25(水) 01:17:05.02ID:zpIb/eJE
>>937
アセットストアで検索したらどうかな
0941名前は開発中のものです。2014/06/25(水) 01:52:51.81ID:5xe24LIX
アセットおじさん
NGされるのがよっぽど気になるみたいだなw
0942名前は開発中のものです。2014/06/25(水) 02:34:45.72ID:106rb2ud
あせっっとぅすぅとぅあに奉納すれば気にならなくなるよ
0943名前は開発中のものです。2014/06/25(水) 02:47:25.08ID:5xe24LIX
きいてるきいてるw
0944名前は開発中のものです。2014/06/25(水) 03:24:46.33ID:1DMUwI4i
こんにちは。
NGUIを利用して、UIを作成しているのですが、
UIウインドウが開いたときに、サウンドを鳴らしたいのですが、
「UIPlaySound」の「Trigger」の項目で設定できるのでしょうか。

宜しくお願いします。
0945名前は開発中のものです。2014/06/25(水) 05:29:53.03ID:zpIb/eJE
>>944
アセットストアで買えばいいと思う
0946名前は開発中のものです。2014/06/25(水) 06:37:26.65ID:D2epn889
アセットおじさん、ベイジアンフィルタで学習させながらNGしてるから
書き方をちょっと変えるくらいじゃあ全然意味ないぞ。もっと頭を使え
0947名前は開発中のものです。2014/06/25(水) 08:17:15.82ID:kLn56OUm
>>938 939
ありがとうございます。立ち読みしてから決めてみます。
0948名前は開発中のものです。2014/06/25(水) 09:17:12.11ID:106rb2ud
書き方変えてるの見えてんじゃねえかwww
0949名前は開発中のものです。2014/06/25(水) 10:35:53.10ID:I0DhEjgK
スレが加速するから例のおじさんは害でしかねえんだよなあ
0950名前は開発中のものです。2014/06/25(水) 10:43:41.78ID:3+jnI0JB
>>945
アセットストア利用するだけ
金と時間の無駄だと思うよ
0951名前は開発中のものです。2014/06/25(水) 18:52:07.69ID:a8S4jIkf
クイズゲーム作ってて4択の解答を下記のようにstring多重配列で並べているんですが量が多いせいかめちゃくちゃ重くなります。

string[,] mondai1 = {
{"あいうえお","かきくけこ", "さしすせそ", "たちつてと"},{"あいうえお","かきくけこ", "さしすせそ", "たちつてと"}, (以下300個ぐらい続く)
}

ゲームの初回起動時に、タイトルからクイズ画面に移動するとロード4秒かかります。
でもシーン遷移でタイトルに戻り、再度クイズ画面に行くと今度は1秒で済みます。

unityはシーン遷移時にオブジェクト全部削除するはずなのに二度目のロードがなぜ短縮されるのかわかりません。
なにか気づいたところあったらお願いします。
0952名前は開発中のものです。2014/06/25(水) 19:03:43.34ID:efxaxSxI
その程度の配列で重くなるとは思えませんが・・配列を削ったら軽くなるのでしょうか
0953名前は開発中のものです。2014/06/25(水) 19:24:14.24ID:a8S4jIkf
>>952
書いてませんでしたがPCでは軽いです。
android実機(エクスペリアのちょっと古い機種)でテストすると起きます。

この多重配列は4つあって、試しに3つ消してみたらロード時間が2秒になりました。
0954名前は開発中のものです。2014/06/25(水) 20:12:51.13ID:ztIemAgA
unity使ったことない俺がエスパーしてみる
フォント作るのが遅いんじゃね?
0955名前は開発中のものです。2014/06/25(水) 20:22:35.38ID:Va0UIggp
>>951
ランダムアクセスが遅いとかならともかく、2次元配列の定義だけでそこまで遅くなるとは考えにくいが
そういう情報はあらかじめ全て保持するのではなく、リソースで管理するなどして
必要なときに必要な情報だけ取り出すようにしたほうがいいのでは
0956名前は開発中のものです。2014/06/25(水) 20:33:42.08ID:56gETtlt
衝突する側とされる側がいて衝突される側から、衝突する側がボタン押したか否かを判断したいんですけど
衝突する側の変数使わずリダイレクトできますか?

OnCollisionEnter(colision col)
 if(col.Input.GetButton("x") == true){処理}

は無理でした
衝突する側が衝突したらフラグ立ててそれを衝突される側が見に行けば
簡単にできるのは分かるんですが、変数使わず衝突される側からする側が
ボタン押したか否かってInputクラスのリダイレクトだけで判定できないですか?
0957名前は開発中のものです。2014/06/25(水) 21:42:37.87ID:JEtSDWdr
Inputってスタティックだから衝突する側もされる側もなくない?
if(Input.GetButton("x")){処理}
でいい気が…
0958名前は開発中のものです。2014/06/25(水) 21:47:33.01ID:56gETtlt
>>957
衝突というか、Aを十字キーで操作してBにぶつけ、かつその状態(接触中)で
Aがボタンを押したら、Bがそれを感知する、としたいんです

A側なら普通にInput.・・・でいいんですが、ボタンを押した後の処理が
B側にあるので、Input感知もB側でしたい、というのが理由です
A側でボタンを押してフラグを立てたくないのは、処理が増えるからです

しかし、もちろんフラグを立てなければできないのであれば立てます
が、その前に一応聞いておきたかったんです
0959名前は開発中のものです。2014/06/25(水) 21:54:24.01ID:7i7kXnh4
なんだかよくわからんがプログラムの組み方がおかしい気がするぞ
ボタンを検出するだけのCをつくってAからもBからもさんしょうすりゃいいんじゃない?
0960名前は開発中のものです。2014/06/25(水) 21:59:53.65ID:JEtSDWdr
Aってプレイヤーの人間のことなのか?
ネットワーク対戦でもしてるってこと?

Inputはどのスクリプトからでも直接見れるよ。
ネットワークの相手のInputをダイレクトに見るのは無理。
0961名前は開発中のものです。2014/06/25(水) 22:32:35.83ID:Z+BiUh6a
OnControllerColliderHitの使い方を教えてください
OnTrigerEnterとかはできたんですがこいつはできません
0962名前は開発中のものです。2014/06/25(水) 22:34:59.69ID:Z+BiUh6a
Rigibody使って接触させたら反応しないんですかねぇ
0963名前は開発中のものです。2014/06/25(水) 22:39:09.62ID:56gETtlt
>Inputはどのスクリプトからでも直接見れるよ。

マジですか・・・
すみません、できるわけないと思って試していませんでした
やってみますすみません
0964名前は開発中のものです。2014/06/25(水) 23:02:39.11ID:NYPoNOpf
シーン名(string)から、シーンレベル(int)を取得なんてできるわけ無いですよね?
0965名前は開発中のものです。2014/06/25(水) 23:13:29.04ID:Ojz1uQ4E
polygonCollider2Dなどの
あたり判定の受付範囲を可視化する方法はありますか?
0966名前は開発中のものです。2014/06/25(水) 23:28:19.88ID:mQkctGc5
2Dアクションで、透明なCollider作ってカメラだけが進めなくなる壁作りたんだけど
カメラを座標指定や子オブジェクで追尾させるとColliderを貫通するし
velocityで無理矢理追尾させても画面がガクガクするしでなんかいい方法ないかな
0967名前は開発中のものです。2014/06/26(木) 00:07:13.95ID:a944jii7
>>964
名前でloadlevelできるのに必要だろうか
0968名前は開発中のものです。2014/06/26(木) 00:26:35.57ID:+p+4Xh8y
>>967
フェードイン、フェードアウトでシーンが切り替えられるクラスを作成中なんだけど、
LoadLevelがジェネリックスに対応していないから、ほとんど同じ内容のメソッドを2つ書いているのがとても我慢ならんのじゃー!!うわーん
0969名前は開発中のものです。2014/06/26(木) 00:27:56.58ID:+p+4Xh8y
>>961
それは、自分が動かないと反応しなかった気がするぞい
0970名前は開発中のものです。2014/06/26(木) 01:08:20.47ID:6yKQkya9
>>961
キャラクターコントローラーをつけてから使う。
コリダー+リジッドボディと併用できなくもないが
相性は悪いな。
0971名前は開発中のものです。2014/06/26(木) 01:15:00.03ID:RQg7QqJi
スクリプト上から生成したオブジェクトのあたり判定を確認したいです。

polygonCollider2Dなどのあたり判定の受付範囲を
実行時に可視化する方法はありますか?
0972名前は開発中のものです。2014/06/26(木) 01:17:46.44ID:6yKQkya9
>>966
キャラをどういう方法で移動させてんのかとかにもよるけど
指定座標に向けてレイ飛ばしてヒットしなけりゃ移動とか?
0973名前は開発中のものです。2014/06/26(木) 01:24:33.14ID:6yKQkya9
>>971
MeshFilterとMeshRendererコンポーネント追加して
そのポリゴンを描いちゃえばいいんじゃない?
0974名前は開発中のものです。2014/06/26(木) 01:28:55.28ID:hwn/P72R
>>966
すまん自己解決した
(追従物座標 - カメラ座標) / Time.fixedDeltaTime
をvelocityに入れることで自然に追従しつつコリジョンもちゃんとしてくれた
0975名前は開発中のものです。2014/06/26(木) 01:29:53.05ID:p7wlM2tI
>>971
ア セ ッ 
      トを かえばできますよ
0976名前は開発中のものです。2014/06/26(木) 01:42:30.12ID:x6bAo7KH
>>968
> >>967
> フェードイン、フェードアウトでシーンが切り替えられるクラスを作成中なんだけど、
> LoadLevelがジェネリックスに対応していないから、ほとんど同じ内容のメソッドを2つ書いているのがとても我慢ならんのじゃー!!うわーん

シーン名とレベルインデックス変換の関数はなさそう。
エディタ拡張で動的に変換テーブルでもつくっとく的な感じでしょうか。
http://answers.unity3d.com/questions/33263/how-to-get-names-of-all-available-levels.html
むしろめんどくさい。
0977名前は開発中のものです。2014/06/26(木) 04:08:50.17ID:qolUsmno
NGUIのExample XでWear Random Itemボタンを押すとBackpackのslotにアイテム(EquipRandomItemのInvGameItem gi)が追加されるようにしたいのですが
どう書けばいいのかさっぱりわかりません…ご教示おねがいします。
0978名前は開発中のものです。2014/06/26(木) 04:33:40.34ID:JlwxX/Uh
アセット購入希望ですが、
バーチャルスティックの左で動かし、右(もしくはスワイプ)で視点変更するような
アセットで何かお勧めはありませんでしょうか?
0979名前は開発中のものです。2014/06/26(木) 05:41:32.79ID:lXlYASxv
>>975
無理だよ
アセットを買っても
0980名前は開発中のものです。2014/06/26(木) 06:18:38.15ID:GamcsUef
UnityでMMDを使うメリットってあるの?
普通のモデルじゃいかんのか?
0981名前は開発中のものです。2014/06/26(木) 08:38:52.28ID:f8PxsD/K
アボーンの制度が上がっているw
このままだと一月も持たず全部アボーンになっちゃうよー
おじさんがんばれww
0982名前は開発中のものです。2014/06/26(木) 11:24:37.62ID:Aj7X+jwv
>>968
こんな感じでいいんじゃね
void LoadLevel<T>(T scene)
{
if( scene is int )
Application.LoadLevel(System.Convert.ToInt32(scene));
else if( scene is string )
Application.LoadLevel(scene as string);
}
0983名前は開発中のものです。2014/06/26(木) 12:25:56.02ID:Mi3PIu8o
円筒をくり抜いたドカンのような形のオブジェクトを作りたいのですが
cylinderではくり抜くやり方がわかりませんでした。
ご教示おねがいします。
0984名前は開発中のものです。2014/06/26(木) 12:59:05.86ID:6yKQkya9
Unityはモデリングツールではない。
スクリプトで計算して直接メッシュを生成することは可能。
この辺
ttp://docs.unity3d.com/Manual/GeneratingMeshGeometryProcedurally.html
0985名前は開発中のものです。2014/06/26(木) 13:10:40.90ID:+ESJiKVh
>>983
アセット買えばいいと思いますよ
0986名前は開発中のものです。2014/06/26(木) 13:30:46.70ID:6yKQkya9
アセットちゃんちったぁ仕事してくれよw
ちなみにアセットストアには本当にそういうアセットはある。
つか、エディタ拡張>モデリング、というカテゴリーがある。フリーのものもある。
0987名前は開発中のものです。2014/06/26(木) 14:17:44.79ID:lXlYASxv
>>965
だから無理だってば
アセットなんか何の役にも立たない
0988名前は開発中のものです。2014/06/26(木) 14:18:28.17ID:lXlYASxv
ミス
>>985
0989名前は開発中のものです。2014/06/26(木) 14:50:34.59ID:H1Wua1Tk
NGUIでキャラに話しかけたらUIを表示し、文字を表示し終えたらUIを消す処理を
したいのですが、表示は以下の記述で出来ました。

// 会話ウィンドウがまだない場合ウィンドウを表示
if(GameObject.Find ("UI") == false){
  Instantiate(Resources.Load("6.prefabs/UI_1"), windowPos, Quaternion.identity);
}

しかし会話が終わって何かボタンを押したらUIを消去する、という処理を
どうすればいいのか分かりません。
NGUIのUIRootあたりのどっかにDestroyでもするんでしょうか・・・?
0990名前は開発中のものです。2014/06/26(木) 15:06:45.58ID:+ESJiKVh
>>989
アセットを購入すれば出来るんじゃないかなあ
0991名前は開発中のものです。2014/06/26(木) 15:32:31.90ID:1w6X5l2p
hoge.SetActive(false);
じゃあかんの?
0992名前は開発中のものです。2014/06/26(木) 15:56:26.71ID:H1Wua1Tk
>>991
ありがとうございます。
SetActiveを知らなかったのでググってみたのですが、Active状態の切り替えって
オブジェクト自体(インスタンス)は残るんですよね?
あくまでも可視状態の表示/非表示(visible / invisible)を切り替えるだけで

人に話しかけた時に出る会話メッセージUIですので、表示後プレイヤーが
ボタンを押したら会話ウィンドウUI自体は完全に削除するほうがいいのかなと思っています
0993名前は開発中のものです。2014/06/26(木) 16:06:58.22ID:jOhJYl1f
自分自身をDestroyでいいんじゃね
0994名前は開発中のものです。2014/06/26(木) 18:54:29.00ID:5O4C96Z9
>>980
mayaやBlenderより覚えるの簡単
0995名前は開発中のものです。2014/06/26(木) 21:05:08.20ID:+joEmIyt
嘘乙。
どう考えてもモーション作成という意味では機能不足でアニメーション作るのが苦行になるだけ。

無料で配布されてるモデルやモーションが使えるからです。
0996名前は開発中のものです。2014/06/26(木) 22:52:35.85ID:Tc7uPDSd
var target : GameObject = GameObject.Find("target");
transform.LookAt(target.transform.position);

これ系がうまく行きません
オブジェクトの名前ってInspectorのタグのところに書いてある文字が名前なんですよね?
適当にキューブを作ってTagをtargetにして他のobjにこいつをしこんだのですが振り向かないです

NullReferenceException: Objectらしいのでオブジェクトの名前付けが間違ってるのでしょうか
0997名前は開発中のものです。2014/06/26(木) 22:54:59.29ID:Tc7uPDSd
普通にリネームしたらできましたぁ・・・
タグで識別する方法とかないんですかねぇ
0998名前は開発中のものです。2014/06/26(木) 22:55:00.72ID:+ESJiKVh
>>996
ASSETSTOREにいってアセットをかいましょう
0999名前は開発中のものです。2014/06/26(木) 22:59:09.01ID:t35CWy1R
Tagで探すなら.FindGameObjectWithTagか.FindGameObjectsWithTag
1000名前は開発中のものです。2014/06/26(木) 23:00:23.97ID:a944jii7
>>996
ダグじゃない
オブジェクトの名前を指定する
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。