【3Dゲームエンジン】Unity質問スレッド9at GAMEDEV
【3Dゲームエンジン】Unity質問スレッド9 - 暇つぶし2ch970:名前は開発中のものです。
14/06/25 06:37:26.65 D2epn889.net
アセットおじさん、ベイジアンフィルタで学習させながらNGしてるから
書き方をちょっと変えるくらいじゃあ全然意味ないぞ。もっと頭を使え

971:名前は開発中のものです。
14/06/25 08:17:15.82 kLn56OUm.net
>>962 939
ありがとうございます。立ち読みしてから決めてみます。

972:名前は開発中のものです。
14/06/25 09:17:12.11 106rb2ud.net
書き方変えてるの見えてんじゃねえかwww

973:名前は開発中のものです。
14/06/25 10:35:53.10 I0DhEjgK.net
スレが加速するから例のおじさんは害でしかねえんだよなあ

974:名前は開発中のものです。
14/06/25 10:43:41.78 3+jnI0JB.net
>>969
アセットストア利用するだけ
金と時間の無駄だと思うよ

975:名前は開発中のものです。
14/06/25 18:52:07.69 a8S4jIkf.net
クイズゲーム作ってて4択の解答を下記のようにstring多重配列で並べているんですが量が多いせいかめちゃくちゃ重くなります。

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

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

unityはシーン遷移時にオブジェクト全部削除するはずなのに二度目のロードがなぜ短縮されるのかわかりません。
なにか気づいたところあったらお願いします。

976:名前は開発中のものです。
14/06/25 19:03:43.34 efxaxSxI.net
その程度の配列で重くなるとは思えませんが・・配列を削ったら軽くなるのでしょうか

977:名前は開発中のものです。
14/06/25 19:24:14.24 a8S4jIkf.net
>>976
書いてませんでしたがPCでは軽いです。
android実機(エクスペリアのちょっと古い機種)でテストすると起きます。

この多重配列は4つあって、試しに3つ消してみたらロード時間が2秒になりました。

978:名前は開発中のものです。
14/06/25 20:12:51.13 ztIemAgA.net
unity使ったことない俺がエスパーしてみる
フォント作るのが遅いんじゃね?

979:名前は開発中のものです。
14/06/25 20:22:35.38 Va0UIggp.net
>>975
ランダムアクセスが遅いとかならともかく、2次元配列の定義だけでそこまで遅くなるとは考えにくいが
そういう情報はあらかじめ全て保持するのではなく、リソースで管理するなどして
必要なときに必要な情報だけ取り出すようにしたほうがいいのでは

980:名前は開発中のものです。
14/06/25 20:33:42.08 56gETtlt.net
衝突する側とされる側がいて衝突される側から、衝突する側がボタン押したか否かを判断したいんですけど
衝突する側の変数使わずリダイレクトできますか?

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

は無理でした
衝突する側が衝突したらフラグ立ててそれを衝突される側が見に行けば
簡単にできるのは分かるんですが、変数使わず衝突される側からする側が
ボタン押したか否かってInputクラスのリダイレクトだけで判定できないですか?

981:名前は開発中のものです。
14/06/25 21:42:37.87 JEtSDWdr.net
Inputってスタティックだから衝突する側もされる側もなくない?
if(Input.GetButton("x")){処理}
でいい気が…

982:名前は開発中のものです。
14/06/25 21:47:33.01 56gETtlt.net
>>981
衝突というか、Aを十字キーで操作してBにぶつけ、かつその状態(接触中)で
Aがボタンを押したら、Bがそれを感知する、としたいんです

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

しかし、もちろんフラグを立てなければできないのであれば立てます
が、その前に一応聞いておきたかったんです

983:名前は開発中のものです。
14/06/25 21:54:24.01 7i7kXnh4.net
なんだかよくわからんがプログラムの組み方がおかしい気がするぞ
ボタンを検出するだけのCをつくってAからもBからもさんしょうすりゃいいんじゃない?

984:名前は開発中のものです。
14/06/25 21:59:53.65 JEtSDWdr.net
Aってプレイヤーの人間のことなのか?
ネットワーク対戦でもしてるってこと?

Inputはどのスクリプトからでも直接見れるよ。
ネットワークの相手のInputをダイレクトに見るのは無理。

985:名前は開発中のものです。
14/06/25 22:32:35.83 Z+BiUh6a.net
OnControllerColliderHitの使い方を教えてください
OnTrigerEnterとかはできたんですがこいつはできません

986:名前は開発中のものです。
14/06/25 22:34:59.69 Z+BiUh6a.net
Rigibody使って接触させたら反応しないんですかねぇ

987:名前は開発中のものです。
14/06/25 22:39:09.62 56gETtlt.net
>Inputはどのスクリプトからでも直接見れるよ。

マジですか・・・
すみません、できるわけないと思って試していませんでした
やってみますすみません

988:名前は開発中のものです。
14/06/25 23:02:39.11 NYPoNOpf.net
シーン名(string)から、シーンレベル(int)を取得なんてできるわけ無いですよね?

989:名前は開発中のものです。
14/06/25 23:13:29.04 Ojz1uQ4E.net
polygonCollider2Dなどの
あたり判定の受付範囲を可視化する方法はありますか?

990:名前は開発中のものです。
14/06/25 23:28:19.88 mQkctGc5.net
2Dアクションで、透明なCollider作ってカメラだけが進めなくなる壁作りたんだけど
カメラを座標指定や子オブジェクで追尾させるとColliderを貫通するし
velocityで無理矢理追尾させても画面がガクガクするしでなんかいい方法ないかな

991:名前は開発中のものです。
14/06/26 00:07:13.95 a944jii7.net
>>988
名前でloadlevelできるのに必要だろうか

992:名前は開発中のものです。
14/06/26 00:26:35.57 +p+4Xh8y.net
>>991
フェードイン、フェードアウトでシーンが切り替えられるクラスを作成中なんだけど、
LoadLevelがジェネリックスに対応していないから、ほとんど同じ内容のメソッドを2つ書いているのがとても我慢ならんのじゃー!!うわーん

993:名前は開発中のものです。
14/06/26 00:27:56.58 +p+4Xh8y.net
>>985
それは、自分が動かないと反応しなかった気がするぞい

994:名前は開発中のものです。
14/06/26 01:08:20.47 6yKQkya9.net
>>985
キャラクターコントローラーをつけてから使う。
コリダー+リジッドボディと併用できなくもないが
相性は悪いな。

995:名前は開発中のものです。
14/06/26 01:15:00.03 RQg7QqJi.net
スクリプト上から生成したオブジェクトのあたり判定を確認したいです。

polygonCollider2Dなどのあたり判定の受付範囲を
実行時に可視化する方法はありますか?

996:名前は開発中のものです。
14/06/26 01:17:46.44 6yKQkya9.net
>>990
キャラをどういう方法で移動させてんのかとかにもよるけど
指定座標に向けてレイ飛ばしてヒットしなけりゃ移動とか?

997:名前は開発中のものです。
14/06/26 01:24:33.14 6yKQkya9.net
>>995
MeshFilterとMeshRendererコンポーネント追加して
そのポリゴンを描いちゃえばいいんじゃない?

998:名前は開発中のものです。
14/06/26 01:28:55.28 hwn/P72R.net
>>990
すまん自己解決した
(追従物座標 - カメラ座標) / Time.fixedDeltaTime
をvelocityに入れることで自然に追従しつつコリジョンもちゃんとしてくれた

999:名前は開発中のものです。
14/06/26 01:29:53.05 p7wlM2tI.net
>>995
ア セ ッ 
      トを かえばできますよ

1000:名前は開発中のものです。
14/06/26 01:42:30.12 x6bAo7KH.net
>>992
> >>991
> フェードイン、フェードアウトでシーンが切り替えられるクラスを作成中なんだけど、
> LoadLevelがジェネリックスに対応していないから、ほとんど同じ内容のメソッドを2つ書いているのがとても我慢ならんのじゃー!!うわーん

シーン名とレベルインデックス変換の関数はなさそう。
エディタ拡張で動的に変換テーブルでもつくっとく的な感じでしょうか。
URLリンク(answers.unity3d.com)
むしろめんどくさい。

1001:名前は開発中のものです。
14/06/26 04:08:50.17 qolUsmno.net
NGUIのExample XでWear Random Itemボタンを押すとBackpackのslotにアイテム(EquipRandomItemのInvGameItem gi)が追加されるようにしたいのですが
どう書けばいいのかさっぱりわかりません…ご教示おねがいします。

1002:名前は開発中のものです。
14/06/26 04:33:40.34 JlwxX/Uh.net
アセット購入希望ですが、
バーチャルスティックの左で動かし、右(もしくはスワイプ)で視点変更するような
アセットで何かお勧めはありませんでしょうか?

1003:名前は開発中のものです。
14/06/26 05:41:32.79 lXlYASxv.net
>>999
無理だよ
アセットを買っても

1004:名前は開発中のものです。
14/06/26 06:18:38.15 GamcsUef.net
UnityでMMDを使うメリットってあるの?
普通のモデルじゃいかんのか?

1005:名前は開発中のものです。
14/06/26 08:38:52.28 f8PxsD/K.net
アボーンの制度が上がっているw
このままだと一月も持たず全部アボーンになっちゃうよー
おじさんがんばれww

1006:名前は開発中のものです。
14/06/26 11:24:37.62 Aj7X+jwv.net
>>992
こんな感じでいいんじゃね
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);
}

1007:名前は開発中のものです。
14/06/26 12:25:56.02 Mi3PIu8o.net
円筒をくり抜いたドカンのような形のオブジェクトを作りたいのですが
cylinderではくり抜くやり方がわかりませんでした。
ご教示おねがいします。

1008:名前は開発中のものです。
14/06/26 12:59:05.86 6yKQkya9.net
Unityはモデリングツールではない。
スクリプトで計算して直接メッシュを生成することは可能。
この辺
URLリンク(docs.unity3d.com)

1009:名前は開発中のものです。
14/06/26 13:10:40.90 +ESJiKVh.net
>>1007
アセット買えばいいと思いますよ

1010:名前は開発中のものです。
14/06/26 13:30:46.70 6yKQkya9.net
アセットちゃんちったぁ仕事してくれよw
ちなみにアセットストアには本当にそういうアセットはある。
つか、エディタ拡張>モデリング、というカテゴリーがある。フリーのものもある。

1011:名前は開発中のものです。
14/06/26 14:17:44.79 lXlYASxv.net
>>989
だから無理だってば
アセットなんか何の役にも立たない

1012:名前は開発中のものです。
14/06/26 14:18:28.17 lXlYASxv.net
ミス
>>1009

1013:名前は開発中のものです。
14/06/26 14:50:34.59 H1Wua1Tk.net
NGUIでキャラに話しかけたらUIを表示し、文字を表示し終えたらUIを消す処理を
したいのですが、表示は以下の記述で出来ました。

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

しかし会話が終わって何かボタンを押したらUIを消去する、という処理を
どうすればいいのか分かりません。
NGUIのUIRootあたりのどっかにDestroyでもするんでしょうか・・・?

1014:名前は開発中のものです。
14/06/26 15:06:45.58 +ESJiKVh.net
>>1013
アセットを購入すれば出来るんじゃないかなあ

1015:名前は開発中のものです。
14/06/26 15:32:31.90 1w6X5l2p.net
hoge.SetActive(false);
じゃあかんの?

1016:名前は開発中のものです。
14/06/26 15:56:26.71 H1Wua1Tk.net
>>1015
ありがとうございます。
SetActiveを知らなかったのでググってみたのですが、Active状態の切り替えって
オブジェクト自体(インスタンス)は残るんですよね?
あくまでも可視状態の表示/非表示(visible / invisible)を切り替えるだけで

人に話しかけた時に出る会話メッセージUIですので、表示後プレイヤーが
ボタンを押したら会話ウィンドウUI自体は完全に削除するほうがいいのかなと思っています

1017:名前は開発中のものです。
14/06/26 16:06:58.22 jOhJYl1f.net
自分自身をDestroyでいいんじゃね

1018:名前は開発中のものです。
14/06/26 18:54:29.00 5O4C96Z9.net
>>1004
mayaやBlenderより覚えるの簡単

1019:名前は開発中のものです。
14/06/26 21:05:08.20 +joEmIyt.net
嘘乙。
どう考えてもモーション作成という意味では機能不足でアニメーション作るのが苦行になるだけ。

無料で配布されてるモデルやモーションが使えるからです。

1020:名前は開発中のものです。
14/06/26 22:52:35.85 Tc7uPDSd.net
var target : GameObject = GameObject.Find("target");
transform.LookAt(target.transform.position);

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

NullReferenceException: Objectらしいのでオブジェクトの名前付けが間違ってるのでしょうか

1021:名前は開発中のものです。
14/06/26 22:54:59.29 Tc7uPDSd.net
普通にリネームしたらできましたぁ・・・
タグで識別する方法とかないんですかねぇ

1022:名前は開発中のものです。
14/06/26 22:55:00.72 +ESJiKVh.net
>>1020
ASSETSTOREにいってアセットをかいましょう

1023:名前は開発中のものです。
14/06/26 22:59:09.01 t35CWy1R.net
Tagで探すなら.FindGameObjectWithTagか.FindGameObjectsWithTag

1024:名前は開発中のものです。
14/06/26 23:00:23.97 a944jii7.net
>>1020
ダグじゃない
オブジェクトの名前を指定する

1025:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch