トップページgamedev
994コメント388KB

【3Dゲームエンジン】Unity 4 [転載禁止]©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2015/06/16(火) 01:35:14.74ID:VIGyPiQQ
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

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

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

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

■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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
0209名前は開発中のものです。2015/07/03(金) 09:16:18.22ID:8OM1Dhcw
>>208
lobbyの接続数であってるはず
仲間内で楽しむくらいの数だよね
ロビーがほぼ意味無いので、同時プレイヤー20で終わりということだね

photonについてはfacebookグループにGMOのひとが答えてくれるので
そっちが詳しく教えてくれるよ
0210名前は開発中のものです。2015/07/03(金) 14:36:01.18ID:1WxMzJv0
>>209
ありがとうございます

一週間くらいPUN弄ってて、やりたいオンゲもできたし
PUNの仕様も分かりやすくて良いなと思ってたんですが、まさか20人程度しか
接続できないなんて・・・

PUN使ってオンゲ作ってる人少ないんですかね
お金をかけず、かつ数千〜数万単位の接続を考慮する場合って
PUNではなく自前でサーバ用意してnode.js使う必要があるんでしょうか?
0211名前は開発中のものです。2015/07/03(金) 16:00:58.76ID:1LBsfv/s
自前でサーバ用意したらお金かかるじゃん
保守大変じゃん
0212名前は開発中のものです。2015/07/03(金) 16:40:50.84ID:39624fgJ
お金かけずに数万の接続処理したいという発想が意味わからん。
それだけのユーザーに迷惑かける可能性があるんだしそれくらいけちるなよと思う。
0213名前は開発中のものです。2015/07/03(金) 16:44:09.51ID:e5zMQYTu
「お金をかけず、かつ数千〜数万単位の接続を考慮する」とか言ってる時点でお察しなんだよなぁw
0214名前は開発中のものです。2015/07/03(金) 17:31:03.78ID:/Be8+OaO
レス文体だけは丁寧だけど中身はちぐはぐな最近よく来る例の子でしょ
0215名前は開発中のものです。2015/07/03(金) 18:35:29.87ID:BUbt07lB
実際やってみると同接20って1日100ユーザーくらいいけるし
1000枚くらい売れたりしたら1.7万払って
500同接買えばいいんじゃない?


自前でもっとサーバ側書くなら、parce.comならもう少し無料枠大きいけど、通信容量や速度、なによりサーバ側コードの記述が段違いだよ
0216名前は開発中のものです。2015/07/03(金) 18:41:04.14ID:BUbt07lB
ちなみにphotonの1万同接、月に400万ユーザー月33.7万円っての自前で構築すると
サーバだけで月20万円、構築費用はテクにもよるが…どこかの会社に依頼しても100マン以下は無いだろうな
0217名前は開発中のものです。2015/07/03(金) 18:48:05.24ID:BUbt07lB
いいこと考えた
自宅に要らないWindowsがあるならphoton server を建てるといい
自鯖なら100同接まで無料だし
ポート開けたりもしかしたら固定IP取るの大変かもだけど無料で100ccuならデイリー8000人くらいいける

なおレンタル鯖だと月に3000円からの模様
0218名前は開発中のものです。2015/07/03(金) 19:16:40.06ID:1WxMzJv0
>>215
>同接20って1日100ユーザーくらいいける

そうだったんですか・・・
勘違いしていたようです、申し訳御座いませんでした
0219名前は開発中のものです。2015/07/03(金) 19:23:23.38ID:gN2xIQc5
冗長性確保するコストを考えたら自鯖はつらいわ
0220名前は開発中のものです。2015/07/03(金) 22:39:40.37ID:Tbi6Gbfx
素人には見当付かないけど一万同接あるコンテンツってかなりすごいよね?
一万同接あるコンテンツがマネタイズされた時、いくら程なんですかね?その、収益的にw
0221名前は開発中のものです。2015/07/03(金) 23:25:42.99ID:7dQagYwU
ぼくにもそんな接続してもらえるアプリのアイデアください
0222名前は開発中のものです。2015/07/04(土) 02:02:04.85ID:r+Gy3W2P
同時接続1万ってアクティブユーザーが10万人くらいいるって事だろ
その規模のアプリ作る人間のする質問じゃ無いな
0223名前は開発中のものです。2015/07/04(土) 02:49:03.56ID:f4Q3vsDP
月1000円くらいで借りれる安いレンタル鯖だと、同接50もいったら落ちそう
まあアレはひとつの鯖に20-50人くらい同居させてるから全体で200同接とかそんな感じ

それに読込のときだけ通信するwebサーバと
つねにデータ送りまくるゲーム鯖と別物だしね
0224名前は開発中のものです。2015/07/04(土) 05:22:29.23ID:UqEwBzv0
今Elixirつかってロビーサーバ書いてるから半年位後にGitで公開できたらいいな
RDB負荷除けばChatとロビーだけで同時接続2万をEC2のMicroインスタンスでまかなえるのは負荷試験でチェック済みなんだ
0225名前は開発中のものです。2015/07/04(土) 15:03:35.02ID:bvHttZCu
最近C#勉強中の俺には意味不明なレベルの流れw
やっぱり持ちは餅屋だよな〜、ドラクエとかでも転職すると微妙なことになるし
0226名前は開発中のものです。2015/07/04(土) 15:11:08.65ID:31uFxRle
C#なんか勉強しても無駄だぞ
Unityで使うC#なんてGetComponent<>();覚えておきゃおk
0227名前は開発中のものです。2015/07/04(土) 15:18:25.51ID:kH0hhukh
たまに来るunityのC#はカスってレスしてくる人は何が目的なの?
unityよりネイティブやってる自分たちが偉いとか凄いという選民主義の人?
0228名前は開発中のものです。2015/07/04(土) 15:26:01.62ID:ZVUl7lof
Unity流のC#の使い方があるから、UnityだけでC#使うならUnity上で勉強したほうがはやいと思うよ。

もちろんC#を勉強するのも無駄ではないと思う。
0229名前は開発中のものです。2015/07/04(土) 15:26:33.47ID:31uFxRle
何を誤解してんだ、逆の事言ってるのに
0230名前は開発中のものです。2015/07/04(土) 15:28:38.53ID:31uFxRle
>>229>>227宛ね
0231名前は開発中のものです。2015/07/04(土) 15:29:10.44ID:TEc/4w+I
まぁ実際C#というかコードベースで設計すると、unityで使う時に痛い目みるし、気持ちわりーと思いながらもUnity流に合わせなきゃいけない場面はあるよな
0232名前は開発中のものです。2015/07/04(土) 16:26:44.16ID:Lu6BZ8Vo
なんか癖でエンジン側のコード制約とロジック分けようとしちゃってるんだが
遅々として進まないのはそのせいなのかやる気の問題なのか
0233名前は開発中のものです。2015/07/04(土) 17:37:13.14ID:UJRa789r
すみませんちょっと質問なんですが、OnTriggerEnter2Dを使っていた時は、物体が同時に当たっても、一回の処理だったんですが、
OnTriggerEnterを使い出したら、敵を撃った時のポイントが同時に当たった回数分加算されるようになっちゃったんですが、これの回避方法ってありますか?
0234名前は開発中のものです。2015/07/04(土) 18:31:02.54ID:iorF/M6u
Uguiでprefabからダイアログボックスぽく作って、instanateして画面のCanvasの上に表示されるようにしたのですが、この時、ダイアログの後を触れないようにするのはどうしたら良いのですか?
0235ss-2015/07/04(土) 20:07:06.86ID:v77ABms+
UnityのC#変だよなー
もともとC#やってればやってるほど違和感
0236名前は開発中のものです。2015/07/04(土) 20:20:07.76ID:iorF/M6u
Interactive = false
でやるのが良さそうですね。
これでちょっとやってみる。
0237名前は開発中のものです。2015/07/04(土) 23:11:40.64ID:m6qGisVe
初心者過ぎて笑ってしまうかもしれませんが、キャラクターを床に置く方法を教えてください
http://iup.2ch-library.com/i/i1461463-1436018592.png
この画像の通りにUniti-Chanを床よりちょっと上に配置しているのですが、動かすと床を突き抜けて落ちて行ってしまいます
一方の奥にある立方体はちゃんと床に乗っかります
どこの辺りが変なのでしょうか?
0238名前は開発中のものです。2015/07/04(土) 23:22:32.72ID:iorF/M6u
コライダが付いてないだけじゃないの?
0239名前は開発中のものです。2015/07/04(土) 23:53:13.75ID:m6qGisVe
>>238
追加したところ立てました
ありがとうございます
0240名前は開発中のものです。2015/07/05(日) 02:32:55.12ID:IFXl70lt
unity本スレから誘導されてきました。

blenderで3Dモデリング完了
unityでインポートしたがシェーダー関連が引き継げないことを知る
仕方ないのでShader Forgeをアセットストアで買う
チュートリアルやサンプルが少なすぎて使い方がいまいちつかめない

という状況なのですが、チュートリアル以外の動画が探しても見つからず、
参考になるようなデータも見つからずに困っています。
blenderで適用したシェーダーもしくは、Shader Forgeの使い方や応用を
乗せているサイトや動画などをお持ちの方、教えてください。
0241名前は開発中のものです。2015/07/05(日) 02:53:13.55ID:lE3CLu/W
Blenderに限らずMayaとかでもカスタムしたようなシェーダは引き継げない。
FBXはLambertとPhongシェーダしかサポートしていない。
ShaderForgeに関しては公式のドキュメント見てわからんとか言われると何がわからないのかがさっぱりわからん
Blenderでカスタムシェーダ組んでる人間なら「見りゃわかる」レベルだろう
http://www.acegikmo.com/shaderforge/nodes/
0242名前は開発中のものです。2015/07/05(日) 13:38:15.06ID:V0HHXtNH
アセっトやプラグインを追加するとき、
フォルダ構成を確認されますが、
なんのアセっトが何を追加したかわからなくなります。

解決方法ってありますか?
0243名前は開発中のものです。2015/07/05(日) 13:47:46.56ID:XWYklhdH
単にフォルダの問題じゃねえか
何インポートしてるかも判らんような奴は何も無いとこにインポートしろ
もしくは既存のをどっかにまとめておけ
0244名前は開発中のものです。2015/07/05(日) 14:13:24.89ID:f484USh4
識別したいのならラベル付けるとかだな
つかググれば直ぐ判るようなことを何度も何度も、かまって君か覚え始めて嬉しいリア厨か
まあ相手するほうも悪いんだけど
0245名前は開発中のものです。2015/07/05(日) 14:18:35.87ID:lE3CLu/W
もはやUnityとか全く関係ねぇw
デスクトップがちらっかっちゃうんですけど〜、
みたいな話だw
0246名前は開発中のものです。2015/07/05(日) 16:55:33.22ID:hnU3dcID
本を買ってみたんだけど、普通のプログラミングと違って動画じゃないとわかりづらいな
0247名前は開発中のものです。2015/07/05(日) 17:10:54.68ID:eh2c4UeN
頭が悪いのを本のせいにするなゴミ野郎
0248名前は開発中のものです。2015/07/05(日) 17:43:23.61ID:hnU3dcID
頭が良い人は英語のチュートリアルを見ればいいんだしさ
本を出す人は高卒の俺にも分かるように書いてくれ
たのむわ
0249名前は開発中のものです。2015/07/05(日) 18:00:46.72ID:MGd2QwN2
趣味の範疇なら本で充分だしな
02502422015/07/05(日) 18:48:02.97ID:EQzGRDh/
>>243-245
勝手にフォルダ構成変えて良いんですね、わかりました。
初歩的なところですみません。でもありがとうございます。


あと、もう1つすみません。
現時点で最新の OSX、XCODE、UNITY にバージョンアップしてやっているのですが、
UNITYエディタ上では普通に実行できるのですが、
XCODEから実機に転送するためビルドすると、
http://forum.unity3d.com/threads/il2cpp-universal-crash-my-game-after-splash.333626/
のURLの
「 KeyNotFoundException: The given key was not present in the dictionary. 」
のエラーと全く同じエラーが出ます。
(コピペしてDIFFしましたが、全く同一でした)

この回答してるおじさんが「調査します」で終わったままということは、
未だに解決されてないってことでしょうか?
エディタ上では動くアプリを、なんとかiPhone実機で動かしたいのですが、、、
0251名前は開発中のものです。2015/07/05(日) 18:56:52.78ID:KX8vXO5F
いやフォーラムで聞けよ
その後どうなったかを別の場所で聞くなよ
0252名前は開発中のものです。2015/07/05(日) 19:10:05.29ID:V0HHXtNH
>>251
初心者&無料版ユーザなので、ちょっと敷居が高くて…
英語ってのも…
0253名前は開発中のものです。2015/07/05(日) 19:26:41.77ID:EF85BxK4
次のパッチで直すと書いてるじゃろ
0254名前は開発中のものです。2015/07/05(日) 22:37:05.92ID:46sKisCO
>>242
Unityはmetaファイルを使って内部的なAssetの管理をフォルダに残す様になってる
ここで重要なのはMetaファイル(テキストベースで見たとき)に書かれたUUIDでファイルの管理がされている事だったりする。

実はAssetを購入したり公開パッケージを入れた時に自分の意にそぐわないフォルダ階層をもっていたらUnity上でFolderを新しく作ってから移動しても、Assetのバージョンアップ時には移動先のファイルが更新される。
試したければ自前のアセット(適当出良い)をExportして試してみれば良い
0255名前は開発中のものです。2015/07/05(日) 22:56:45.12ID:ckXc8rGQ
unityeditorの中では移動おkはマニュアル等によく書かれてるから初心者でも知ってると思うけど
一部特殊なフォルダがあるから気を付けること、ちょっと情報が古いけど↓とか

Unityの特殊フォルダと各々の役割(追記版)
ttp://tsubakit1.hateblo.jp/entry/20131028/1382965930
0256名前は開発中のものです。2015/07/05(日) 23:17:02.56ID:harHMpfJ
質問です
子オブジェ(child_1〜child3)をもつゲームオブジェクト(p)をp[1],p[2]
としてInstantiateで複製しました。p[0]はステージ上に置かれた複製元としました。

そのp[0]〜p[2]の子ゲームオブジェクトを取得したいのですが
for(int i=0,i<3;i++){
if(i==0){
p[i]=GameObject.Find("p");
}else{
p[i]= Instantiate (p[0])as GameObject;
}
for(int j=0;j<3;j++){
c[i,j]=GameObject.Find(p[i]+"/child"+(i+1));
}
}

とするとエラーになります。p[0]のchild1,p[1]のchild2は個別に使いたいのですが
どうしたらよいでしょうか。。
0257名前は開発中のものです。2015/07/05(日) 23:26:43.21ID:HlKuKgj4
>>256
なんてエラーはいてるのかくらい書けやw
まぁ多分
c[i,j]=GameObject.Find(p[i]+"/child"+(i+1));

c[i,j]=p[i].transform.Find("child"+(j+1).ToString()).gameObject;
とでも書けばいいんだろうが。
childもchild_1とchild3と書き方が違うがどっちなんだよw
0258名前は開発中のものです。2015/07/06(月) 00:24:15.63ID:o7KesfxR
>>257
null reference…なエラーでした。child_でした。いろいろすいません
おかげさまでnullエラーはなくなりましたmOm
ありがとうございました・
0259名前は開発中のものです。2015/07/06(月) 00:51:24.22ID:u5CKOVSs
すみません質問です

TextオブジェクトにInputFieldコンポーネントを追加して
ゲームビュー上でクリックするとキーボードからテキストを入力できるようにしたのですが
フォントサイズを変えると入力位置が表示されるテキストより随分下にズレてしまいます

入力位置を縦に微調整する方法はあるでしょうか
よろしくお願いします
0260名前は開発中のものです。2015/07/06(月) 01:48:34.91ID:NmKv4JvD
shift+spaceでGameとかConsoleとか特定のウィンドウを全画面表示にするショートカットキー
多用するんだけど、たまに全画面表示に切り替わらない事があるんですが、何が原因か分かりますか?
0261名前は開発中のものです。2015/07/06(月) 02:40:13.40ID:OqntVP/a
>>253
あ、日付は先月のものですね。
なぜか去年と勘違いしてました。
次のパッチ早く出て欲しいです。いつだろう。
ジョシュペテァソン頑張れ超頑張れ。

>>255
ありがとうございます、確認してみます!
0262名前は開発中のものです。2015/07/06(月) 11:04:36.82ID:NhLkDjWn
Spriteの左半分だけ描画するとかってどうすればいいのかな?
uGUIのImageでImage TypeをFilledにしてFillAmount弄ったときみたいにしたいんだ。
SpriteRendererのspriteメンバを弄ったり、Sprite.Createで置き換えてみたりしても上手く行かなかった。
0263名前は開発中のものです。2015/07/06(月) 17:38:02.30ID:V/HFeCo8
左半分と右半分の矩形を定義して使えばいいんじゃないの
もしくは
tiling と offset があるシェーダでそれぞれを操作する
0264名前は開発中のものです。2015/07/06(月) 20:13:24.14ID:icgWuoAa
terrainで頑張ってもさあ
https://psm.playstation.net/static/general/all/unity_for_psm/ja/Documentation/Components/script-Terrain.html
これの上の方みたいなやつをつくるのが精々で、
https://psm.playstation.net/static/general/all/unity_for_psm/ja/Documentation/Images/manual/script-Terrain-6.jpg
こんなの全然できそうにない・・・・
動画で説明してるところとかないかな?
0265名前は開発中のものです。2015/07/06(月) 21:47:26.47ID:HH3ecl1Y
アクションゲーム作るとき攻撃の当たり判定ってどうしてる?
プーリングするとしてもGameObject作るのか?
0266名前は開発中のものです。2015/07/06(月) 22:50:11.98ID:cdtJswAF
>>264
そんなもん動画見ても「ね?簡単でしょう?」以外のことなんかわからんっつーの…
02672622015/07/06(月) 23:40:27.42ID:NhLkDjWn
自己解決。
Sprite.pivotの値をそのままSprite.Createの第3引数に入れてたのがおかしかった原因だった。
Sprite.pivotがピクセル単位の座標なので、矩形内の比率を入れるべきSprite.Createにそのまま渡しちゃ当然ダメだわな…
0268名前は開発中のものです。2015/07/06(月) 23:41:54.94ID:Cvq1CS7k
同じくマップ制作がしんどい
スマホ向けに軽量なマップ自動で作れるとありがたいんだが
asset storeでおすすめありません?
0269名前は開発中のものです。2015/07/07(火) 00:26:17.54ID:zULeI0oY
アセットストアでダウンロードしたものリストって、どっかで見れないの?
0270名前は開発中のものです。2015/07/07(火) 00:28:49.48ID:CTlSA1Jf
それぐらいのマップなら3時間でサクツといけるでしょ
0271名前は開発中のものです。2015/07/07(火) 02:07:19.15ID:P7g8h9xM
初歩的な質問ですみませんが、
3D空間にObejectがいろいろあって、最前面にGUIを別カメラ(Screen Space - Camera)で全画面表示したときに、
後ろの3D Objectがクリックを拾ってしまって困っています。
3D ObjectはSpriteでOnMouseDownを仕込んでいます。GUI側は黒バックの背景を全面に敷いてMENUのようなものが置いてあります。
丸一日かかって色々試しましたがどうしても直りません。
3D Object側で状況を判定してクリックを無視するようにするしかないでしょうか?
0272名前は開発中のものです。2015/07/07(火) 02:47:30.64ID:8fB2f+6o
ストップウォッチのwindowsアプリを作ったのですが、update内での常時処理が
多いせいで単にカウントアップするだけのツールなのにものすごく重いです

Update内には以下の処理をベタ書きで書いています
・feeld += Time.deltaTimeによるカウントアップ処理(タイマー本体)
・カウントが最低値や最大値を上回った時に0にするフェールセーフ的な処理
・カウント値をTextコンポに常時表示するためのtimer.text = string処理

何かいい対処法はないでしょうか?
よろしくお願いします
0273名前は開発中のものです。2015/07/07(火) 02:58:22.05ID:pyP607KT
>>271
すげえ単純な対処だとGUIをだす時には通常用のカメラの前にもコリダーつけた板を置いてしまう。
基本的には重なりがある場合には前のものしか拾わないから。

>>272
そんな程度で重くならんよ…。3DSTGとかそんなオブジェクト100個くらい同時に動くぞ?
0274名前は開発中のものです。2015/07/07(火) 03:16:55.06ID:8fB2f+6o
>>273
マジですか?
アプリ起動していない時と比較するとCPU使用率がどうとかいう以前に
まず体感として明らかに重くなるんですが。
ブラウザで動画開いてる時にツール起動すると動画がカクつくとかですね

PCはレッツノートCF-S10で、Core-i52.5GHz、メモリ4GB、win7(32bit)、グラフィックintelのノートPC用カード
ですが、これはPC性能のせいですか?
unity+VS同時起動してるだけでも重くなりますが、unityやるには低スペックすぎますかね?
0275名前は開発中のものです。2015/07/07(火) 03:36:57.91ID:pyP607KT
>>274
仕事場ではi7だが自宅ではPhenomとかで作業してるからそのスペック自体が低いってのはないな。
まぁノートで省電力設定がどうなってんのかとかイマドキ32ビットだとどうなんだろうとか
オンチップグラフィックだとどうなのかとかその辺は気になるがそういうオブジェクトの20個30個くらいは
動かしたところでどうなるとも思えんがな〜
0276名前は開発中のものです。2015/07/07(火) 03:44:35.31ID:8fB2f+6o
>>275
そうなんですね・・・
ループ処理は一つもないので、変なところで意図しないループが発生して〜
とかは無いです
ツールも単純で、スタートボタン押すとTime.deltaTimeで計測してその数値を
textコンポに常時表示する、ストップボタン押すと止まるという、ただのそれだけのツールです
winアプリ起動時に表示されるconfigurationのGraphics qualityもFantastic以下のGoodとか色々
試してみたのですが、重くなるのは変わらずでした
単純に設計がおかしいのか・・・
02772712015/07/07(火) 04:01:05.03ID:P7g8h9xM
>>273
ありがとうございます
通常カメラ側でやっちゃうのもどうかと思ったのですが、
とりあえず希望の動作になりましたので、一旦この方法で進めていこうと思います
0278名前は開発中のものです。2015/07/07(火) 08:25:19.06ID:CfaKc5wU
>>274
ブラウザで動画なんて、しょっちゅうコマ落ちするよ。
回線速度が遅いとか、途中のルータで、画像が無くなるとか

それかGPUを、動画・アプリ・Unityなどで、
取り合っているとか

そもそも動画は、GPU,CPUとは相性が悪い。
1枚ずつ異なる画像データを、読んではすぐに破棄するため、
同じデータを使い回せないので、キャッシュが効かない
0279名前は開発中のものです。2015/07/07(火) 18:32:37.54ID:vDZVKife
>>278
コーデック gpu 動画支援
ここらへんをもう少し勉強した方がいい
0280名前は開発中のものです。2015/07/07(火) 18:37:10.33ID:IbIamJ0V
>>274
体感で重いことをやたら強調してるけど問題解決に必要なのはCPU使用率のほうだと思う

たしかウィンドウが非アクティブだとUpdateが呼ばれないんだっけ?
その状態でも重いなら描画以外に原因がありそう
0281名前は開発中のものです。2015/07/07(火) 18:48:05.52ID:zULeI0oY
重くなるって言えば・・・・
Rigidbodyが設定されていて、60フレームごとにtransform.rotateでちょこっとずつ回ってるCubeがさあ(イメージとしてはサイコロ10個)
こいつらが床みたいなものの上で10個ぐらいぶつかるだけで、俺のへぼパソコンは処理落ちしちゃうぜ
0282名前は開発中のものです。2015/07/07(火) 21:46:02.60ID:xUwcW21R
OnClickの戻り値はvoidでIEnumerationでないからyieldできないのですが、どうやってコルーチンの結果を受け取れば良いのか教えてください。
0283名前は開発中のものです。2015/07/07(火) 21:54:11.94ID:ivqfVLb5
Updateで終わるまで待つしかないのかな?
0284名前は開発中のものです。2015/07/08(水) 00:29:02.40ID:z8fYzX9w
普通にコルーチンの引数にオブジェクトの配列にText含めて渡してコルーチンの中で設定したら出来た。でも、クラスに変更した方が良いかな。stringや数値にも渡せるようにしたいけど、めんどくさいな。
0285名前は開発中のものです。2015/07/08(水) 04:18:57.60ID:Pz5uXZTG
windowsアプリで最小化ボタン押したらタスクトレイに格納する事って出来ますか?
0286名前は開発中のものです。2015/07/08(水) 11:11:22.91ID:WH/kys/S
>>285
スレ違いかしら?
0287名前は開発中のものです。2015/07/08(水) 11:36:47.09ID:h0YPxzZu
まぁUnityでビルドしたやつをそうしたいということならプラグイン書くしかないとはいえる。
昔ならプロ版じゃないとダメだったが今なら誰でも出来る
0288名前は開発中のものです。2015/07/08(水) 15:17:10.07ID:Pz5uXZTG
>>287
ありがとうございます
0289名前は開発中のものです。2015/07/09(木) 01:13:49.05ID:xvER447B
Physics.Raycastで取得したゲームオブジェクトから、
別のゲームオブジェクトのListに登録したゲームオブジェクトと比較して同一であるかどうか知りたいのですが、
rayが当たったゲームオブジェクトからGetComponent<>()でメンバやメソッドやらを取得するよりも効率的な方法はありますか?

rayが当たるゲームオブジェクトにListの要素数と同じ数の値を持たせてif文で比較と思ったのですが、
ヒットする度にGetComponentは非常に無駄な気がします。
0290名前は開発中のものです。2015/07/09(木) 01:42:15.44ID:ky12UGWc
>>289
ListでIndexOfを使うのとどっちが早いかって話なんだろうが数次第ではある
計測すればいくつ以下ならこっちの方が早いとかもある程度わかりそうだが
実際問題Unityの仕組み的にはゲッポするのが最適解に近いのは確かだろう

まぁんなこといってて漫然と
transform.position
とか使ってたら笑うけどなw
0291名前は開発中のものです。2015/07/09(木) 02:25:26.60ID:xvER447B
すいませんどちらかというとrayを飛ばして取得できる情報がtransform位なんで、
rayがヒットしたオブジェクトがどんな状態で何を設定したのか、
アタッチされたコンポーネントなりから状態を調べなきゃならないと思うんですが、
GetComponent以外で負荷が軽いゲームオブジェクトのユニークな情報を取得してListと比較出来るのかなって話です。
0292名前は開発中のものです。2015/07/09(木) 02:52:27.29ID:ky12UGWc
いや、transformは自動GetComponentだって話
それにRayCastHitInfoとるために内部で何度もGetComponentしてる
今更一回くらい増えたところで変わらんだろう

GetComponent以外でそれ以上に処理が軽いユニークな情報を取得する手段がありえるとしたらGetInstanceIDくらいか
でもどっちにしてもリストと比較しなきゃならんし結局のところIndexOfでやることになる。
0293名前は開発中のものです。2015/07/09(木) 07:27:41.81ID:ozO0w3od
頂点シェーダを触りたいのですが、Unityではサーフェイスシェーダ?というものしか触れないのでしょうか?
もしくは、サーフェイスシェーダで頂点シェーダもピクセルシェーダも兼ねてるとかですか?
プログラミング初心者なのでよくわかりません
0294名前は開発中のものです。2015/07/09(木) 08:51:34.05ID:ky12UGWc
全部書けるよ。
サーフェスシェーダはライティング関連を自動で書いてくれるので楽ってだけ
http://docs.unity3d.com/ja/current/Manual/SL-Reference.html
0295名前は開発中のものです。2015/07/09(木) 10:04:53.71ID:fxiHp6MA
>>289
一つはListじゃなくてDictionary使えばちょっと速くなる(リストを順に全部しらべるよりも速くアクセスできる)
GetComponentしないと目的のコンポーネント要素には触れないのでそこはGetComponentの回数を減らす努力をするしかない。
0296名前は開発中のものです。2015/07/09(木) 10:14:06.43ID:xvER447B
>>292
プロファイラ見ると1回GetComponentした瞬間に強めの負荷がかかってるように見えるので
短時間に何度もGetComponentしたら相当重くなると思うんですが、Unityの特性って事なんでしょうかね
敵機を大量に破壊するシューティングゲームだと相当フレームレート落ちそうな気がします
0297名前は開発中のものです。2015/07/09(木) 10:38:17.53ID:aGuzLR3s
敵を大量に破壊するシューティングにphysicsが必要か?
目的にあった実装を探すのもゲーム作りだと思うよ

あと、「大量に破壊」を同一フレームで行わないならfps低下はないんじゃないかなと
0298名前は開発中のものです。2015/07/09(木) 11:22:25.71ID:SFFiJwDu
プログラミング初心者で頂点シェーダ触んの…?
まあある意味シェーダは変にプログラマよりは初心者のほうが良いかもだけど
0299名前は開発中のものです。2015/07/09(木) 12:36:52.93ID:11larjl7
>>296

unity公式のチュートリアルのコード読めば
GetComponenを毎回呼ばないですむ方法を書いてるよ

意味が解らないのならC#を勉強すればいい
0300名前は開発中のものです。2015/07/09(木) 15:54:09.74ID:W6nY+58T
エディターの再生ボタンでゲーム停止したときに以下のエラーがたまに出るんだけど原因が特定できない
ゲームんの停止時や終了時に走らせるスクリプトは書いてないのになんだろう?

MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.

Your script should either check if it is null or you should not destroy the object.
UnityEngine.GameObject.SendMessage (System.String methodName) (at
0301名前は開発中のものです。2015/07/09(木) 16:33:03.98ID:W6nY+58T
>>300
これ解決出来てないけどエラーの再現はできた
Pointer EnterとPointer ExitのEvent Trigger持たせたオブジェクトに対し
右クリックしたあとでゲーム停止するとそのエラーが出る
なんで右クリック限定なんだろう・・・
0302名前は開発中のものです。2015/07/09(木) 16:33:10.43ID:SFFiJwDu
>>292
>いや、transformは自動GetComponentだって話
え、自分自信の座標とる
this.gameObject.transform と
this.gameObject.GetComponent<Transform>() が
同じコストってこと?
0303名前は開発中のものです。2015/07/09(木) 16:33:51.78ID:SFFiJwDu
レイキャストのときって話なのかな
0304名前は開発中のものです。2015/07/09(木) 18:44:34.41ID:ky12UGWc
>>296
1回のGetComponentにプロファイラに出るほどの負荷がかかるわけないじゃんw
1000個のオブジェクトが一回ずつとってるとかなら話別だが

>>302
基本的にはそう、だといわれている。実際のメモリの載り方とかが
どうなってるのかとかまではわからんが
http://www.slideshare.net/RyoheiTokimura/ss-35321624
これの25ページ目
http://qiita.com/crow_ver6/items/3dc6ba29062d397bbf60
とか、探せばいくらでもでてくる。
0305名前は開発中のものです。2015/07/09(木) 20:02:34.16ID:8n5hGdOE
>>304
すごいためになった
今まで普通にtransform使ってたけどキャッシュした方がよかったのかぁ
0306名前は開発中のものです。2015/07/10(金) 15:40:20.48ID:iuN3UkMF
Unity5では直ってる…とリリースノートに書いてあったよ
0307名前は開発中のものです。2015/07/10(金) 15:53:07.45ID:LyfS03CN
何の話?transform?
0308名前は開発中のものです。2015/07/10(金) 17:10:11.27ID:iuN3UkMF
うん、英語だけど
http://blogs.unity3d.com/jp/2014/06/23/unity5-api-changes-automatic-script-updating/

の末尾に
[2] in Unity5 we also cache the transform component on the c# side, so there should no longer be a performance reason to cache the transform component yourself.
って書いてある。
「Unity5ではtransform を俺ら(ユニティ社)の方でキャッシュしたし、
もはやパフォーマンス上の理由でtransform を自前キャッシュする必要ないよ。」
■ このスレッドは過去ログ倉庫に格納されています