2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

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

1 :名前は開発中のものです。:2014/08/05(火) 22:02:24.88 ID:WCQkNfyP.net
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質問スレッド10
http://peace.2ch.net/test/read.cgi/gamedev/1403791323/

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

■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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

450 :名前は開発中のものです。:2014/08/30(土) 04:55:35.02 ID:/UYAHKWQ.net
unityで使えるjavascriptってブラウザのとは違うの?
C#とjavascriptのどちらがいいのかしら

451 :名前は開発中のものです。:2014/08/30(土) 05:21:10.07 ID:PGHiCsKy.net
>>450
色々と仕様は違うけど、ブラウザのjavascript弄れるならすぐに慣れると思う

とりあえず書籍もサンプルも多いしJavascriptから始めれば良いんでない?
C#でしか出来ないこともあるけど、それで困ったら乗り換えりゃ良いだけの話

452 :名前は開発中のものです。:2014/08/30(土) 05:56:14.06 ID:/UYAHKWQ.net
アカウントが作れない
メールでボタンを押せって言われてもなあ

453 :名前は開発中のものです。:2014/08/30(土) 06:45:44.51 ID:/UYAHKWQ.net
Unityを初インストールしている
UnitySetup-4.5.3

Activate the free versionを選んだ
アカウントを作った
https://accounts.unity3d.com/でアカウントができたことを確認できた
だがLog into your Unity Accountで失敗する

メールアドレスが正しいか確認するからメールを見ろって書かれているのだが
その確認メールは以下のボタンを押せと書かれたテキストメールなので
ボタンなんて存在しないから押せない
URLも書かれていない

何度も挑戦したが同じメールが来るだけ

詰んだ
一旦あきらめる
寝る

454 :名前は開発中のものです。:2014/08/30(土) 10:39:21.22 ID:6tj+xk6N.net
前スレの1000超えてから質問してしまいました。こちらで再び。

プログラミング自体初心者なんですが、UnityのDetonator Explosion Frameworkに付いて質問です。

砲弾による爆発で敵にダメージを与えたいのですが、どうすれがいいでしょうか?Detonatorで検索しても
爆発させる方法が殆どで、ダメージを与える方法が出て来ないです。砲弾自体が当たった時はSendMessageで砲弾で設定したダメージを与えられるので、
それと同じダメージを爆発の当たり判定でも与えたいです。

やり方の解る方、または参考になるサイトや書籍をご存知の方教えて下さい。よろしくお願いします。

455 :名前は開発中のものです。:2014/08/30(土) 10:57:21.55 ID:RXtR61Xg.net
>>454
トリガーを使う

砲弾に既にコライダが設定されていると思うのでちょっと面倒かもしれんが

456 :名前は開発中のものです。:2014/08/30(土) 11:28:37.65 ID:Lx2WUZ4h.net
Unity最近使い始めてある程度なれて来たんだが
これ画面に文字とかボタンとかのGUI表示できないの?
あとunityってストーリーのあるRPGとか作るのにあんまり向いてない?
2DのストーリーありのRPG作ろうと思うんだけど

457 :名前は開発中のものです。:2014/08/30(土) 11:30:11.82 ID:TXvo3xTj.net
>>454
どうやりたいのか知らんが例えばDetonatorが
爆発した時Forceを加えてるのと同じ方法がやりたいなら
DetonatorForce.csのoverride public void Explode()関数の
中身を見れば大体やってることはわかると思う。
例えばだがその中に
SendMessage("OnDetonatorForceHit", null, SendMessageOptions.DontRequireReceiver);
という文があるのでそこのnullに適当な値を放り込んで
OnDetonatoroForceHit()を被ダメージ関数として書いてやるか
もしくはSendMessageの内容自体を自分が使ってる被ダメージ関数に書き換えちゃっても良いと思う。
ダメージの値はDetonatorForce内で計算していないので直接は取れないが
基本的には物理エネルギー減衰だから距離の逆2乗測で同じような結果になるんじゃないか。
具体的に書けば
float damage=1-(_explosionPosition-hit.transform.posion).magnitude/radius;
damage*=damage;
とかか?

458 :名前は開発中のものです。:2014/08/30(土) 11:32:20.24 ID:TXvo3xTj.net
ああ、すまない、それだとダメージ1以下しか行かないから最後の行は
damage=damage*damage*Power;
とかかな。

459 :名前は開発中のものです。:2014/08/30(土) 11:36:36.76 ID:4G5OHezK.net
2DのRPG作ってるけどUnityにそれに特化したサポート機能はないね
GUIは標準でも搭載されてるけど、ウインドウごちゃごちゃ出し消しするのにはあんまり向いてないから
NGUIって有料アセット使ってる

460 :名前は開発中のものです。:2014/08/30(土) 13:04:39.07 ID:WPuubHYI.net
4.6ベータ版に、uGUiっていう、機能があっでnGuIみたいなことができるようになってる。

でも、あれをwebplayerで、ビルドすると、他人は遊べないという趣旨のメッセージが出るんですが、じっさいどうなんでしょう。
exeで出力すれば問題はないのでしょうか…

461 :名前は開発中のものです。:2014/08/30(土) 13:38:35.31 ID:Obvt4QwM.net
>>460
アセットをかえば問題無いですよ

462 :名前は開発中のものです。:2014/08/30(土) 13:55:25.61 ID:zirRIDIQ.net
inputManagerのkeyをC#から押した事にしたいんだけど出来ないのでしょうか?

input.GetKeyDownはあるけど、反対のSetKeyDown的な事がしたいのですがどなたかわかる方いませんか

463 :名前は開発中のものです。:2014/08/30(土) 14:11:26.57 ID:+etliCX6.net
すみません
自己解決しました

464 :名前は開発中のものです。:2014/08/30(土) 14:25:06.57 ID:Obvt4QwM.net
>>462
アセットを買えばできると思いますよ

465 :名前は開発中のものです。:2014/08/30(土) 14:27:59.79 ID:WPuubHYI.net
>>462
Horizontalを押したらx変数に、
x変数に代入された定数に基づいて、キャラクターを移動させる。
ボタンを押したことにしたいなら、x変数に、スクリプトから自分で値を代入させればいい

466 :名前は開発中のものです。:2014/08/30(土) 14:45:34.89 ID:tcnq/ywW.net
>>462
自分でInputManagerをラップしたクラスを作る
あらゆる値は自前のラップクラスから得る
そうすることでフレーム毎の入力をインプットデバイス以外から指定可能になる

この手の事はReplay系でも使われる、なおReplayでやるには移動制御で使うTime.deltaTimeも同じようにしないと駄目

467 :名前は開発中のものです。:2014/08/30(土) 15:12:08.40 ID:Obvt4QwM.net
>>462
アセトをかえば面倒なスクリプトは要りませんよ、勉強も不要で簡単にできます

468 :名前は開発中のものです。:2014/08/30(土) 15:28:34.44 ID:kuzb9s49.net
unityでもっとアニメーションを作りやすくするassetって無いですか?

469 :名前は開発中のものです。:2014/08/30(土) 15:55:46.40 ID:tcnq/ywW.net
>>468
それは普通の3Dモデラー使えば良いじゃんか
2D?
しらんがな

470 :名前は開発中のものです。:2014/08/30(土) 16:20:50.03 ID:qCuf0hVh.net
2DならSpriteStudioかSpriterかね?

471 :名前は開発中のものです。:2014/08/30(土) 16:32:58.89 ID:/UYAHKWQ.net
インストールしてみたんだが
電子メールのアドレス確認をするConfirmation instructionsってメールが送られて来て
これがプレーンテキストで下のボタンを押せって書いてあるけどボタン無いからUnityが使えない。
これは英語かなんかでsupport@unity3d.comに言うしかないんでしょうか。
それとも出来ないのは私だけでほかの方は下記で送られてくる確認メールで確認作業ができるのでしょうか。
https://accounts.unity3d.com/confirmation/resend

472 :名前は開発中のものです。:2014/08/30(土) 16:45:04.14 ID:kuzb9s49.net
>>469
blenderとか使ってたんですけど
自分の環境だと何故かポーズの変更が出来ないのでunityの標準機能使って
やってみましたが非常に使いつらくて困ってます

あともうひとつ質問です
unityのC#でアクションゲームを作る場合
ダメージ処理はC#のイベントとおい機能を利用して実装するのが一般的なんでしょうか

473 :名前は開発中のものです。:2014/08/30(土) 16:45:31.85 ID:A4BLD5jM.net
>>471

メール漁ったらこんなレイアウトでボタンは画像だったからメーカー設定がテキストのみとでもなってんじゃない

ーーーーーーーーーーー
Welcome〜
〜the link below:

[こんふぉーむボタン]

Confirm my account


The Unity Team

474 :名前は開発中のものです。:2014/08/30(土) 16:49:19.09 ID:Obvt4QwM.net
>>472
アセットをかえばいいと思いますよ

475 :名前は開発中のものです。:2014/08/30(土) 16:49:26.46 ID:jCHy7CjD.net
>>471
英語だと「Resend confirmationm」
日本語だと「認証メールの再送」ってボタンが出るけど?
ブラウザ or メーラーを、変えるか設定を見るとかしてみて。

476 :名前は開発中のものです。:2014/08/30(土) 18:20:19.79 ID:/UYAHKWQ.net
ありがとうございます。
色を付けるなどのHTMLメールは受け取れるけど、なぜかこの認証メールのが消えてしまうメーラーだったみたい。
無事メールアドレスの認証ができました。

477 :名前は開発中のものです。:2014/08/30(土) 18:29:47.23 ID:RXtR61Xg.net
>>472
一般的ではないですがゲームモデルは自分がやりやすい方法で実装して構いません

478 :名前は開発中のものです。:2014/08/30(土) 19:45:27.77 ID:6tj+xk6N.net
>>455
返信が遅れしまってすみません。
トリガーを使うというのはコライダーをもう一つ付けるという事でしょうか?
それともDetonator側でコライダーを生成するスクリプトを加えるのでしょうか?本当に知識の乏しい初心者で申し訳ないです。



>>457
返信が送れてすみません。
おっしゃる通りDetonetorがForceを加えている方法で同時にダメージをSendMessageで接触した敵に送りたかったんです。

SendMessageを書き換える方法で一度やってみようと思います。

分かりにく質問なのに、丁寧にお答え頂いてありがとうございます。

479 :名前は開発中のものです。:2014/08/30(土) 19:54:46.14 ID:/UYAHKWQ.net
Unityってよくできてると思うが3Dって難しいな
http://japan.unity3d.com/developer/document/tutorial/my-first-unity/01.html
ここ見ながらやってみたが
最初下記が表示されていなかったりして操作性に戸惑う
http://japan.unity3d.com/developer/document/tutorial/my-first-unity/img/01/fig06.png
XZ軸に配置するのも戸惑った

Main Cameraを良い感じになるように移動しろとあるけど
カメラが遠くにあっても近くにあっても被写体の見かけの大きさが変わらないんだけどどうなってんの?
http://ookami.qweexz.jp/temp/un20140830/un001.jpg

480 :名前は開発中のものです。:2014/08/30(土) 19:55:32.68 ID:0TdY9JE6.net
基礎の参考書初めからやったほうがいい

481 :名前は開発中のものです。:2014/08/30(土) 20:09:46.07 ID:RXtR61Xg.net
>>478
お察しの通り、1つのゲームオブジェクトにコライダーコンポーネントを2つくっつけることはできないので

・空オブジェクトにトリガーをアタッチしたオブジェクトを生成して砲弾の子オブジェクトとして設定する

もしくは

・爆発した時点でトリガーをアタッチしたプレファブをインスタンス化する
(インスタンス化したプレファブは当たり判定が無くなったタイミングで自らDestroyさせる)


で、トリガー範囲内のキャラクターにSendMessageすればいいかと

482 :名前は開発中のものです。:2014/08/30(土) 20:10:10.38 ID:/UYAHKWQ.net
後日書籍探しに出かけることにします

483 :名前は開発中のものです。:2014/08/30(土) 21:19:53.56 ID:6tj+xk6N.net
>>481
なるほど、空オブジェクトにコライダーをアタッチすれば、Detonatorのスクリプトを弄らずに行けそうですね。

前者の子オブジェクトの方法だと、爆発前でもトリガー範囲内にSendMessageされますよね?(違ってたらすいません)
出来たら爆発の間だけダメージを与えたいので、プレファブ化してInstantiateで呼び出す方向でやってみます。本当に勉強になります。

ありがとうございます。

484 :名前は開発中のものです。:2014/08/30(土) 21:30:58.17 ID:RXtR61Xg.net
>>483
砲弾自体がヒットした場合、必然的に砲弾のダメージと爆発のダメージが両方入るので
どちらかが入った時点でダメージを受付けないようにするか、二重ダメージを許容するか
仕様は自分で定めてください

485 :名前は開発中のものです。:2014/08/30(土) 21:39:46.54 ID:/UYAHKWQ.net
>>448
ブラウザのJavaScriptだと条件式はbooleanでtrueかfalseになるけど
これを計算に使うと暗黙の型変換でtrueが1にされるみたいだね。
でもunityのJavaScriptだとint * booleanがエラーになるね。

var num : int = 100 + ((abc == 0)?2:0) - ((abc >= 2)?5:0);
これで動いたけど
abc = "0"
だった場合は(abc == 0)がtrueで、(abc >= 2)がエラーだった。

正式な仕様は知りません

486 :名前は開発中のものです。:2014/08/30(土) 21:40:25.75 ID:oPadNVwe.net
playmakerを買ったのはいいんだけど使い方がよく分からない
適当に調べてチュートリアルとかも一通り目を通したけどちんぷんかんぷん
マウスクリックで色が変わる、離すと元に戻るとかは出来たが
キーボードの指定されたキーを押したら特定の状態に遷移とかの仕方がまったく分からん

487 :名前は開発中のものです。:2014/08/30(土) 21:45:01.38 ID:Obvt4QwM.net
>>486
違うアセットをかえばいいと思いますよ

488 :名前は開発中のものです。:2014/08/30(土) 21:53:32.10 ID:UCkopV/m.net
普通に歩いている途中で、下半身は歩きモーションを続けたまま、
上半身は銃を構えたい場合などはどうすればよいでしょうか?
調べたら、DirectXだかの場合のやり方はどこかに書いてあったのですが・・・・
どうしたら良いかどなたかご教授ください・・・

489 :名前は開発中のものです。:2014/08/30(土) 22:32:12.83 ID:6tj+xk6N.net
>>484
なるほど、確かに砲弾と爆発の両方でSendMessageすると両方のダメージ食らっちゃいますね。
今回は爆発の方でだけダメージを与える様にします。

丁寧に説明して頂いてありがとうございます。面白いゲームになる様にがんばります!!



>>457

教えて頂いたやり方でやろうとしたのですが、当方、Javascriptで書いている為SendMessageの処理がうまく行かず、断念してしまいました。
もっと勉強して教えて頂いたやり方でも処理出来る様にします。

お二方とも本当にありがとうございます。

490 :名前は開発中のものです。:2014/08/30(土) 22:33:59.20 ID:TXvo3xTj.net
>>488
ある程度それにあったデータである必要はあるが
mecanimでレイヤーを使う。
この辺
ttp://docs-jp.unity3d.com/Documentation/Manual/AnimationLayers.html

491 :名前は開発中のものです。:2014/08/30(土) 22:59:59.76 ID:UCkopV/m.net
>>490
ありがとうございます!
この方法を試させて貰います!

492 :名前は開発中のものです。:2014/08/31(日) 00:27:48.43 ID:/mg3niUK.net
>>479
遠近法が適用されてないな、透視投影法だっけ?
にすれば、おk

493 :名前は開発中のものです。:2014/08/31(日) 01:44:11.01 ID:lxG2AtuY.net
>>466
>>465
ありがとうございます!

ラップっていうのは、こういう事でしょうか?
http://answers.unity3d.com/questions/136342/how-to-set-input-buttons.html
混乱して来た…

あるアセットがinput.getkeydownを監視しているんですが、それをモバイル対応させたくて、touchと組み合わせてスクリプトからinput.getkeydownを押した事に見せかけたいんですけどラップすればそれが出来ますか?

494 :名前は開発中のものです。:2014/08/31(日) 01:52:23.18 ID:PDJTd6s+.net
>>493
アセットをかえばできますよ

495 :名前は開発中のものです。:2014/08/31(日) 02:07:59.57 ID:UVuLUCZY.net
アセットのデモシーンだとしっかり動くけど
新しく作ったシーンに丸ごとコピペしても正常に動かないのはなぜなんだ…

496 :名前は開発中のものです。:2014/08/31(日) 02:34:43.31 ID:h2V5ktdn.net
>>493
Input.GetKeyDownとかはStaticFunctionだからそれを隠蔽するのは無理。
アセットのコードにアクセスできるならそれを書き換えちゃえば?

497 :名前は開発中のものです。:2014/08/31(日) 04:31:10.65 ID:/mg3niUK.net
秋葉原モデルを、何度アセットストアからダウンロードしても、
道路のテクスチャが表示されずに真っピンクに…

4.6ベータなのがイケないのかな?

498 :名前は開発中のものです。:2014/08/31(日) 13:41:02.17 ID:5Pkl5tCm.net
>>497
アセットは買わなきゃダメです
アセットは買いましょう

499 :名前は開発中のものです。:2014/08/31(日) 19:27:59.41 ID:F4IBa814.net
>>497
テクスチャがピンクになるのは大概シェーダーの問題だ
適当に変えてみよう?

500 :名前は開発中のものです。:2014/08/31(日) 22:32:29.31 ID:fJZzFWiX.net
アセットストアが非常に重くフリーズします。
Windows7 i7 2600K メモリー16G
Unity Version 4.5.3


普段はブラウザ上で購入しているのですが、UnityのAsset Storeを開くと
Unityが10分ほどフリーズし、操作が行えない状態です。
何か解決方法はありますか?

501 :名前は開発中のものです。:2014/08/31(日) 22:49:29.40 ID:cnXCu85V.net
あります

502 :名前は開発中のものです。:2014/08/31(日) 23:25:50.35 ID:5Pkl5tCm.net
>>500
アセットをかえば軽くなるんじゃないでしょうか

503 :名前は開発中のものです。:2014/08/31(日) 23:36:51.46 ID:lxG2AtuY.net
>>496
ありがとうございます
アセット側を弄ってみることにします

504 :名前は開発中のものです。:2014/09/01(月) 00:07:05.95 ID:BLyG/4d5.net
>>503
ラップってのはある機能を自前のクラスで等価に扱いながら自分の望む事をするために特殊化する事を意味する
Unity標準のInputと同一メソッドを持たせてやれば呼び出しコストが少しかさむが同じ機能を提供できることは理解できるとおもう
たとえばInput クラスのbool GetButton(string key)だけを模倣するなら
class MyInputClass {
static bool GetInput(string key) {
return Input.GetInput(key);
}
}
こうなる、ここでMyInpuClassのGetInputに外からの情報に基づいた追加機能を使うように修正すれば初回の質問の答えになる。
たとえば
class MyInputClass {
static bool _forcePressFire1;
static bool GetInput(string key) {
if(key=="Fire1")
return _forcePresFire1;
return Input.GetInput(key);
}

このようにする事でMyInputClass.GetInutは"Fire1"引数に対してクラス変数_foresPressFire1がtrueなら実際の入力に依存せずに任意の値を返せる。

>>496
がstatic Functionだから隠蔽するのは無理って言っているのはラップを継承で片付けようとする誤解から来てる。

これ読んでも理解できないならC#言語の解説とGoFの書籍読むべき

505 :名前は開発中のものです。:2014/09/01(月) 00:39:15.61 ID:toS6w3xL.net
Unityで作成したゲームからiphoneのカメラロールにアクセス(若しくは写真を撮影)して、そこから取得した画像をテクスチャとしてゲーム内で適用させる方法ってありますか?

506 :名前は開発中のものです。:2014/09/01(月) 00:40:53.90 ID:dV6bM/SP.net
今、生物の増殖プログラム作ってるんですが
つまづいているところがあるので質問させてください!
隣の空き地に自分の複製を作るスクリプトです。
(オブジェクト同士の距離をある程度離したいためAの処理を入れてます)

@自分から半径1の円周上に自分のコピー(オブジェクト)を生成
Aコピーを生成する際、その座標が他のオブジェクトの半径1の円の中にあるとき、生成を中断して1に戻る
B生成できる場所がなければ処理を終了

@の処理はできたのですが
AとBの処理はどうスクリプトを書けばいいのか分かりません。
わかる方教えてください!JSでお願いします

507 :名前は開発中のものです。:2014/09/01(月) 00:41:56.35 ID:tiyIU5+B.net
>>504
やば

つまりtouchしたら_forcePressFire1をtrueしてやればそのままスマホ対応出来るわコントローラ対応も出来るわで一石二鳥なわけですね!

ちょっとGoFとやらも読んでみます。

神様ありがとう!

508 :名前は開発中のものです。:2014/09/01(月) 03:51:17.47 ID:DvHOmP6g.net
>>506
JSでってコピペすれば動くコードよこせって話なのかw

アルゴリズム的には自分から半径1のどこかに起点とって衝突判定、
衝突がなければ生成。
衝突があればその衝突したオブジェクトの一番遠い方から半径1と自分から半径1の円の交点求めて得られた2点と
起点を自分中心に60度回転させた点の三つの中で一番起点から遠い点を新たな起点にして
その新しい起点と最初の起点の距離が1未満になることを終了条件にして再帰的に探索繰り返せばよさそうかとは思うが。

衝突判定アルゴリズムは超めんどくさくても全部自分で書くか
そうでなければColliderつけてPhysicsなりPhysics2Dなりでやるか、
ってあたりだろうな〜。

でも3次元だともうかなりめんどくさくなりそう。
あと衝突対象が円とかじゃなくて壁とかそういうのがあったりするとかなりアレかも。

まぁいずれにせよJSは書かないからよくわからんw
あと基本的にUnityの話じゃないよなこれw

509 :名前は開発中のものです。:2014/09/01(月) 07:12:36.48 ID:1GR867jd.net
質問させて下さい。
2DのターンベースのシミュレーションRPGを作りたいのですが、Unityは適切ですか?
3Dエンジンと紹介されていたので、どんなものかと考えています。
できれば、タクティクスオウガみたいな、斜め上から見下ろした感じでさらにHexのシミュレーションRPGにしたいです。
よろしくお願いいたします。

510 :名前は開発中のものです。:2014/09/01(月) 07:51:10.56 ID:cMTpsGvM.net
>>509
2Dのゲームも現在は作れるようになっています。
ターン製は作ったことが無いので分かりませんが・・・

511 :名前は開発中のものです。:2014/09/01(月) 08:41:50.74 ID:cMEn6HU+.net
GameMaker使っとけ

512 :名前は開発中のものです。:2014/09/01(月) 09:42:07.59 ID:PCyZ6y3q.net
>>505
ネイティブで書くかアセットを買うか、好きなのをどうぞ。
フォトアルバムにアクセスしてるunityアプリも実際にある。

513 :名前は開発中のものです。:2014/09/01(月) 14:09:38.18 ID:HaCpLbgB.net
>>509
アセトをかえばできますよ

514 :名前は開発中のものです。:2014/09/01(月) 14:29:34.39 ID:FxtfUF2A.net
今ネットワークの勉強をしてるんですけど質問があります
http://docs.unity3d.com/ScriptReference/Network.TestConnection.html
このunity公式のサンプルなんですけどこの中のTestConnection()はOnGUI()の中で呼び出されててテストが終わるまで
ループして何度も呼び出されるという風になってると思います
それでTestConnection()の中の3行目で
connectionTestResult = Network.TestConnection();・・@
とconnectionTestResultに代入されています
わからないのはその後なんですけど connectionTestResultの結果で枝分かれした
case ConnectionTesterStatus.PublicIPPortBlocked:
の中の7行目で
connectionTestResult = Network.TestConnectionNAT();・・A
とまたconnectionTestResultに代入してますよね?
ここでconnectionTestResultに代入しても次のフレームではまた@で代入されてしまうわけだから
Aの代入は消えてしまうんじゃないでしょうか?
Aの代入した結果はどこへ行ってしまうのでしょうか?

515 :名前は開発中のものです。:2014/09/01(月) 15:11:21.81 ID:HaCpLbgB.net
>>514
アセットをかえばわかりますよ

516 :名前は開発中のものです。:2014/09/01(月) 16:04:08.18 ID:POAmqZGW.net
>>514
このスレで真面目に聞いてもわかんない奴ばっかだから意味ないよ
参考書みたいなの買うとかした方がいい

517 :名前は開発中のものです。:2014/09/01(月) 16:11:41.09 ID:SmgKT/8p.net
まず読む気が起きない

518 :名前は開発中のものです。:2014/09/01(月) 16:15:19.73 ID:pGf+Aihs.net
わかんない奴>>514
でも>>514みたいに煽りを入れておくと返答率よくなるのは確か

519 :名前は開発中のものです。:2014/09/01(月) 16:16:47.78 ID:pGf+Aihs.net
おっと
>>514 → >>516

520 :名前は開発中のものです。:2014/09/01(月) 16:44:23.62 ID:8MnlaxC9.net
見下ろし型シミュレーションRPGなら3Dの方がいいんじゃない
2Dグラフィック用意するのクソめんどいよあれ

521 :名前は開発中のものです。:2014/09/01(月) 17:18:56.41 ID:PCyZ6y3q.net
そういやもうすぐファントムオブキルってスマホSRPGが出るんだっけか、あれはunity製なんかな。

522 :名前は開発中のものです。:2014/09/01(月) 17:37:51.82 ID:FxtfUF2A.net
ちょっと文面が長くてわかりにくくてまずかったかなぁ
よく考えてシェイプアップさせたつもりだったのだが

523 :名前は開発中のものです。:2014/09/01(月) 17:42:32.57 ID:2g5VkOwA.net
要件は先にもってくるとわかりやすい

524 :名前は開発中のものです。:2014/09/01(月) 18:36:58.11 ID:phuRIGMR.net
>>514
ちゃんと見てないがその関数は単に返り値を返すだけじゃなくて
サーバー側と通信してるっぽいからサーバー側の反応見るためにそこで打ってるんじゃないの?

525 :名前は開発中のものです。:2014/09/01(月) 19:14:28.40 ID:qsDLovS+.net
以前、>>454で質問した者です。
結局、>>455さんのコライダーを使うというアドバイスで今日スクリプトを書いてみたのですが、
思った様にEnemyにSendMessageで来ません。やりたい事は砲弾に設定したダメージを爆発時に生成した
IsTriggerをオンにしたコライダーに変数blastでSendMessageで送り、コライダー側の変数damageに代入。
その後EnemyにSendMessageでdamageを送るという手法を使っているのですが、砲弾からコライダへは変数を
送れているのですが、SendMessage ApplyDamage has no receiver!
UnityEngine.GameObject:SendMessage(String, Object)というエラーが出ます。因に、他の弾丸でSendMessageでdamageを
送ったときも同じエラーは出る物の、damageはきっちり送られています。

526 :名前は開発中のものです。:2014/09/01(月) 19:16:21.76 ID:qsDLovS+.net
>>525の爆発用のコライダーのスクリプトです。

#pragma strict

private var damage : float;

function Blast(blast : float)
{
damage = blast; //ここまでは数値は送られています。
}

function OnTriggerEnter(col : Collider)
{
if(col.tag == "Enemy")
{
col.gameObject.SendMessage("ApplyDamage",damage);
}
}
function Update()
{
Destroy(gameObject,3);
}

何処がおかしいのでしょうか?

527 :名前は開発中のものです。:2014/09/01(月) 20:58:05.13 ID:qsDLovS+.net
連稿すみません。エラーメッセージの方は単にSendMessageOptions.DontRequireReceverを入れてなかったからでした。

しかし、やはり爆発の方のdamageはEnemyに送られていない様です。どなたかご教示願います。

528 :名前は開発中のものです。:2014/09/01(月) 21:02:44.19 ID:HUU9GCmK.net
DestroyをUpdateに入れるな

529 :名前は開発中のものです。:2014/09/01(月) 21:13:28.34 ID:HaCpLbgB.net
>>526
これは、アセットをかったほうがいいですね

530 :名前は開発中のものです。:2014/09/01(月) 21:14:57.40 ID:qsDLovS+.net
>>528
OnTriggetEnter内に入れると、消去されずに残ってしまったので仕方なく外に出してUpdateで呼んでるんでが?マズいですか?

ダメージはどちらにしろEnemy側に送られてないです。因にSendMessageの部分はダメージを送れる方の弾丸と同じ内容です。

531 :名前は開発中のものです。:2014/09/01(月) 21:17:52.28 ID:jxSAtt3p.net
>>505
Facebookとマルチしてんじゃねぇよ
向こうで指摘されてるが検索で一発じゃねえか

532 :名前は開発中のものです。:2014/09/01(月) 22:07:19.46 ID:19bEyZS/.net
OnTriggerEnterに入れたDestroyが機能しないのに同じ場所に入れてるSendMessageが機能するはずがないわな

533 :名前は開発中のものです。:2014/09/01(月) 22:13:58.12 ID:qsDLovS+.net
>>532
説明が不十分でしたね。OnTriggerEnterに入れると衝突判定が無いと消えないですよね?戦艦で戦う系なので、
標準アセットのwalterをつかっているのですが、うまく衝突判定が取れずに消えない事もあるという事です。全が消えない訳ではないです。
Awakeで読んでlifeTimeで管理でも良いんですが、そこはどうにでもなるので姑息策で外に出しているんで、OnTriggerEnter自体は機能しています。
OnTriggerEnter内で処理していたときもEnemyに当たっていた分は消えていたので。

534 :名前は開発中のものです。:2014/09/01(月) 23:09:33.75 ID:ymmddkqZ.net
コライダーがあってもOnCollision系, OnTrigger系が動かない組み合わせもあるようだが
ttps://code.google.com/p/vga-unity/wiki/GP10UnityCourse08
ttp://raharu0425.hatenablog.com/entry/2014/01/17/164919

535 :名前は開発中のものです。:2014/09/02(火) 02:01:16.02 ID:l6NrJpA9.net
>>481
1つのGameObjectにColliderコンポーネント複数取り付けられる気がするんだけど
これって正しくない挙動するからやめろって事??

536 :名前は開発中のものです。:2014/09/02(火) 03:13:59.10 ID:ALgug/FZ.net
>>533
ただ聞いてる分には
・衝突判定はできている
・しかしセンドメッセージは効いていない
=センドメッセージとそれを受ける関数の書き方がおかしい

としか思えんのだがw

537 :名前は開発中のものです。:2014/09/02(火) 04:48:15.82 ID:EsmMb8P/.net
>>534
コライダーは爆発側には一つしか付いてないんですよ。受ける側はOnCollisionEnterとOnTriggerEnterで二種類の関数からSendmessageを送っているのでその辺りですかね?


>>536
そうですよね?何度もそう思って、見直した上にdamageを送れている方の弾丸からcol.gameObject.SendMessage("ApplyDamage",damage); の部分を
コピペしてやってもうまく行かないんですよ。

当たり判定があった時にDebug.Logでdamageと出力させる様にしても、DebugLog自体は出力されるのでやはり衝突判定は取れている様です。

538 :名前は開発中のものです。:2014/09/02(火) 05:41:46.68 ID:ALgug/FZ.net
>>537
実は同じようなミサイルの爆発でダメージ、ことをしていて俺の場合はコリダー二つつけて片方は
実弾としての当たり判定、片方はトリガーにして範囲判定にしているんだが
別に出来てるんだよな〜。
やり方的には実弾側が当たったらOnCollisionEnterでセンドメッセージでダメージ、そのコリダーはディゼーブルにして
トリガー側をイネーブルにして同じくOnTriggerEnterでセンドメッセージでダメージ。

まぁちょっと気になっているのが爆発が起きた時爆発のパーティクルが広がるより前にダメージが渡ってしまうので
コンポーネントをイネーブルにするというラグが不規則に起きそうな処理よりデトネイター型の処理にした方がコントローラブルそうな気がして
そっちに書き換えようかな〜とかは思っているのだけど。

539 :名前は開発中のものです。:2014/09/02(火) 06:00:54.66 ID:EsmMb8P/.net
>>538
コライダー二つでも処理出来てるんですね?聴いた所ほぼ同じ処理だと思うのですが、こちらは砲弾自体でのダメージはなく、
砲弾側で設定したダメージを着弾時に生成したコライダ付きの空オブジェクトに送り、それをOnTriggerEnterで衝突した敵に送る。
という、若干回りくどい方法をとっています。

先ほど、DeBug.Logで確認してみた所爆発のdamage自体はちゃんとEnemyに送られているようです。
只、爆発の方だけ hp -= damageが実行されていない様です。しかしもう一方の弾丸の方のdamageは
きっちりと計算されています。もう何が何だか。

恐らくデトネーター型の方がスマートなやり方なんでしょうね?もっと勉強せねば。

540 :名前は開発中のものです。:2014/09/02(火) 07:50:27.10 ID:1GMwZIBc.net
>>539
そのとっちらかったダメージ処理を見直すべき。
処理のタイミングずれて問題が出てる訳だから、今のままだと今後もトラブルと思うけど。

541 :名前は開発中のものです。:2014/09/02(火) 07:57:19.23 ID:FFsdmZrU.net
>>539
アセトをかえば簡単ですよ

542 :名前は開発中のものです。:2014/09/02(火) 12:02:00.52 ID:av9lwgyz.net
プレハブを使う利点って、
同じ内容のオブジェクトを
簡単に複製できるというだけですか?

プログラム上で同じ設定を付与できれば、
プレハブ使うメリットはないのでしょうか。

それとも、プレハブにしたほうが
ロードが早いとかありますか?

543 :名前は開発中のものです。:2014/09/02(火) 12:06:45.32 ID:ALgug/FZ.net
そりゃコンポーネントを付加したりヒエラルキーを組んだりっていう
操作がなくなってロードすりゃいい状態なんだからその分早くはなるだろう。

あとシリアライズされたデータを保持しておけるというのもある。
基本的にはスクリプトで全部出来るからまさに時間とメモリのトレードオフの問題ではあろうね

544 :名前は開発中のものです。:2014/09/02(火) 14:54:55.88 ID:uzHWIoAm.net
>>542
アセットをかえば早くなりますよ(ガチで

545 :名前は開発中のものです。:2014/09/02(火) 15:03:42.89 ID:/QVIXs5T.net
>>542
プレファブの語源をもう一度かみしめると良いかもしれない。
コードで全部行う事で同じ事は確かにできるのだけど、プレファブの本質はソコじゃ無い。
ResourcesクラスやAssetBundleクラスから生成可能なのがミソなのだ。
そしてそれらはシーンに配置したGameObjectの参照からインスタンス化するのと同様に生成できる。

乱暴に言えばプレファブからのインスタンス化を理解して使えばダウンロードコンテンツからでも今のゲームシーンに任意のゲームオブジェクトを生成できるって事。

546 :名前は開発中のものです。:2014/09/02(火) 17:08:46.32 ID:ElI5Z03+.net
nGUIは皆買ってんの?
フリー版使ってる人のが多いんだろか

547 :名前は開発中のものです。:2014/09/02(火) 17:36:20.62 ID:RDa7aV1G.net
>>485
今更ですけど返信ありがとうございます!条件演算子というらしいですね
こちらだと特にエラーは起こらなかったのでそのまま使ってしまおうと思います

548 :名前は開発中のものです。:2014/09/02(火) 18:52:57.80 ID:EsmMb8P/.net
>>540
返信が遅れてすみません。

おっしゃる様にダメージ処理がとっ散らかっていたので、結局、爆発の方のスクリプトから直にdamageの値を送る事で
解決しました。爆発のスクリプトを他の武器でも流用出来る様にと思ってやった事ですが、もう少し理解してからしないとダメですね。


教えて頂いた皆さんありがとうございます。

今は無駄に自作のガトリングガンを作って遊んでますw完成は遠いですww

549 :名前は開発中のものです。:2014/09/02(火) 19:30:01.55 ID:PrWBRdRO.net
質問失礼します。

現在テクスチャーの貼られたマテリアルをゲームオブジェクトに貼って画面に表示しています。

この手法だとゲームオブジェクトを2万ほど表示するとFPSが落ち始めます。

もっと早くテクスチャーを画面に表示したいのですが、何か良い方法は無いでしょうか?

分かる方、よろしくお願いします。

550 :名前は開発中のものです。:2014/09/02(火) 20:37:39.57 ID:RQcEJ2j6.net
>>546
みんなって意味じゃdfと分かれるだろうしplaymakerの方が一応持ってる率高いんでない

総レス数 1007
310 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200