[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 1101- 2ch.scのread.cgiへ]
Update time : 03/13 00:44 / Filesize : 345 KB / Number-of Response : 1101
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名前は開発中のものです。 mailto:sage [2014/06/26(木) 23:02:03.72 ID:t35CWy1R.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質問スレッド9
peace.2ch.net/test/read.cgi/gamedev/1399506271/

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

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
 www24.atwiki.jp/unity2ch/
●リンク
・Unity(日本公式サイト)
 unity3d.com/japan/
・ユーザーガイド&リファレンス
 japan.unity3d.com/developer/document/
・チュートリアル
 japan.unity3d.com/developer/document/tutorial/
・スクリプトリファレンス
 docs-jp.unity3d.com/Documentation/ScriptReference/
・FAQ
 answers.unity3d.com/index.html
・MSDN
 msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

59 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 21:39:39.95 ID:1D2Rjobc.net]
え?Javaってメソッドや変数名が小文字なの?キモすぎる

C#に慣れ過ぎだとこれ

60 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 21:40:52.45 ID:1D2Rjobc.net]
小文字じゃねえ小文字から始まるの、です

61 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 21:50:15.58 ID:GbXFYWlE.net]
あれ、俺変数名やプロパティはパスカルケースじゃなくキャメルでやってた
混ざってたのかw

62 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 22:36:30.61 ID:UYHm+SxB.net]
AnimatorのトランジションInspector上でatomicのチェックを外しておくと
複数のトランジションが伸びているステートなら、一方のトランジションを再生中でも中断して他のトランジションに移れるそうですが
移行するトランジション優先度はどうやって指定するのでしょうか

63 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 22:37:37.38 ID:ClpQhuQb.net]
>>57
ほかの人が答えてくれてた。

今は、コードデザインに興味を持つ若手が非常に不足してます。
将来のメインプログラマ不足につながってしまうので、ぜひ頑張ってくれー。

64 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 22:43:40.91 ID:h58mMhhZ.net]
>>61
ASSETをかえばできるんじゃないでしょうか

65 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 23:14:23.88 ID:LZ7/FrJO.net]
これ何時間くらい勉強すればUniのスクリプトマスターできる?
まだtransformとかtimeとかグラビチィとかLookAtとかのレベルなんだけど

66 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 23:38:07.68 ID:ClpQhuQb.net]
ゲームプログラマは、かかっても1週間もあれば自由に使えるようになるな。
後は調べながらだよ。

67 名前:名前は開発中のものです。 mailto:sage [2014/06/28(土) 23:58:38.04 ID:g+sRFGLs.net]
>>64
プログラム全くやった事ないド素人で、1日2時間くらいやって
今3週間目くらいですけど、上手なプログラムとかやり方を選ばなければ
ウインドウ処理以外のRPGの基本処理はできるようになりました

ウインドウ(UI)処理(NGUI)はほんと意味が分からない・・・
unityのスクリプトよりNGUIを使えるか、という方がはるかに不安です



68 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 00:07:22.26 ID:j0JGUa9n.net]
ライブラリはひと月もあればだいたい把握できるだろうけど
それができるようになるレベルまでには、全力でやる気注げても2年くらいはかかりそう
全力が続かず散発的に触ってたらさらにもりもり時間かかりそう

69 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 01:28:06.84 ID:xlD1U1/P.net]
>>66
アセットを買えばプログラムの知識はいりませんよ

70 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 01:38:41.87 ID:sLVZnAPY.net]
>>55
MSのコーティング規約かー。なるほど。
Java専門だったけど、郷に入っては郷に従え。MSコーディング規約に合わせるべさ。

71 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 02:13:04.41 ID:PBgWw+BZ.net]
オブジェクトの回転がむずい

72 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 02:18:13.46 ID:xlD1U1/P.net]
>>70
アセットを買うと回転も簡単だよ

73 名前:61 mailto:sage [2014/06/29(日) 02:50:01.03 ID:V0nwOHaK.net]
自己解決しました
これマニュアルに載ってない気が・・・

74 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 09:31:00.80 ID:sLVZnAPY.net]
>>72
どう解決したのか、わたし気になります!

75 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 10:50:05.17 ID:ID49xzQdJ]
助けてぇ。。。。ビルド出来るけど出来ないよぉ(困惑)

Unityエディタ上での実行は問題ないのに、WebPlayerやexe形式などでビルドしようとすると

error CS0103: The name `UnityEditor' does not exist in the current context
error CS1061: Type `object' does not contain a definition for `path' and no extension method `path' of type `object' could be found (are you missing a using directive or an assembly reference?)

とかで怒られる。MonoDeveloperで見る限りは
Assembly-CSharp
Assembly-CSharp-Editor
Assembly-CSharp-firstpass
のそれぞれのReferencesにUnityEditor.dllはちゃんと存在してる感じ。

詳細な経緯は以下のとおりです。

1) Unity4.3.4からUnity4.5.1へアップデート
2) そのまま平和な日々が過ぎていく
3) Windowsが起動失敗→復元ポイントまで戻すで復元
4) Unityのバージョンが4.3.4まで巻き戻る
5) 4.5.1へアップデート
6) 上記のビルド出来ない病が発病
7) 4.5.1アンインストール後、4.3.4インストール
8) 治らない;
9) 4.3.4アンインストール後、4.5.1インストール
10) 治らない;;

76 名前:74 mailto:sage [2014/06/29(日) 12:54:21.90 ID:ID49xzQdJ]
>>74 自己解決しました。
原因は経緯と全く関係なく、スクリプトのファイル形式でした。

どこで、そうなったかわかりませんが、
UTF-8(BOMなし)形式で保存されていたのを、
UTF-8(BOMあり)形式に変換して保存しなおしたら問題なくWebPlayerやexe形式へビルドできるようになりました。

お騒がせしました。
よかったよおおおお;;

77 名前:名前は開発中のものです。 [2014/06/29(日) 17:05:58.70 ID:W6QLaLK8T]
初心者です
japan.unity3d.com/developer/document/tutorial/2d-shooting-game/mobile/04.html
上記の公式チュートリアル通りに2Dシューティングにバーチャルジョイスティックを実装してみました。
androidで動作確認してみると、ジョイスティック入力と画面上での自機の移動に少しズレができてしまい操作性が悪く困っています。
良い方法はありますか?
低レベルな質問かもしれませんがお願いします。



78 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 18:39:51.50 ID:V0nwOHaK.net]
アニメーションステートのInspectorにTransitionのリストがあって
遷移先はリストの上にあるものが優先される(Atomicを外したTransitionを再生中の時のみ)
リストはドラッグ&ドロップで入れ替えられる

メカニムでキャラの動き制御するなら結構重要だと思うんだけどマニュアルにも載ってないしググっても出ない

79 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 18:42:12.58 ID:4QjtsUPR.net]
>>77
アセットストアで検索したらいいと思いますよ

80 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 18:47:37.07 ID:tXtNTezB.net]
ここは「氷菓」のウンカス、チタンダエルを愛でるスレです。

★チタンダエル (CV:くぱぁマン子)
成り上がりチョン名家のひとつ、剛毛恥嘆惰毛の一匹。
普段は黒々としたウンコだが、一度興味をひかれる男に出会うと
その細く吊り上がった瞳を濁らせて劣情の権化と化す、性欲旺盛なビッチ。
決まり文句は「わたし、痔になります」。

81 名前:名前は開発中のものです。 [2014/06/29(日) 18:58:55.51 ID:n5E22NIZY]
意味がわからないよ〜
GameObject retChild = gameobject.transform.FindChild("子の名前").gameObject;
このプログラムや他のオブジェクトを取得する文を入力するのだけど、
どうやっても改善できないよ〜

エラー文は以下の通りです。
Assets/waveenemy.js(19,19): UCE0001: ';' expected. Insert a semicolon at the end.

82 名前:名前は開発中のものです。 [2014/06/29(日) 19:02:52.93 ID:n5E22NIZY]
すみません、80ですがやりたいことを記入してなかったので、追記します。

HPのバーをダメージを受けるたび減らしたいのですが、
バーを呼び出そうとするとエラーになりました。

キャラ本体とバーは別物なので、どうするといいでしょうか?
セミコロンはつけてるのに、エラーになります。
functionのすぐ下に書いても同じです。

83 名前:名前は開発中のものです。 [2014/06/29(日) 20:24:40.34 ID:BwfVhPXR.net]
シーン遷移時にフェードアウトさせてるんですが、
フェードアウト中に他のボタン、例えば前のシーンに戻るボタンや別ステージへ移動するボタンを無効にしたいです。
現在は一つ一つにpublicなboolをつけてシーン遷移時に全てfalseする方法をとっています。
もっと簡潔な方法あったらお願いします。

84 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 20:59:25.18 ID:4QjtsUPR.net]
>>82
アセットを買うのが一番簡潔な方法ですよ

85 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 22:19:39.43 ID:9oDHnJ4j.net]
>>82
NGUIなら不可視の全画面のWidget作ってコリダーを付けておき一番手前に置いておけば良いだけ

86 名前:名前は開発中のものです。 [2014/06/29(日) 22:55:19.03 ID:BwfVhPXR.net]
>>84
unityの2dでやってます。
コライダー付きのゲームオブジェクトをフェード前に配置する感じにしてみます。
ありがとう。

87 名前:名前は開発中のものです。 mailto:sage [2014/06/29(日) 23:27:23.66 ID:9oDHnJ4j.net]
>>85
基本はUIイベントに到達するまえにタップやクリックを食って捨てるだけなので、ButtonMaskとか言うオブジェクトをヒエラルキーのTopLevelに置いておいてそれをSetActiveでOn,Offするのが楽かもね
GameObject mask = GameObject.Find("/ButtonMask"); で持ってくる感じ



88 名前:名前は開発中のものです。 [2014/06/29(日) 23:38:39.13 ID:BwfVhPXR.net]
>>86
やり方まで書いてもらってどうもありがとうございます。
これでやってみます。

89 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 01:08:56.97 ID:1W4uEawq.net]
NGUIのUIって普通にインスタンスで呼び出し→Destroyで消去
していいんですよね?

「スペースキー押すとUIをInstantiateで表示し、表示した状態で
もう一回スペースキーを押すとDestroyでUI消去する」という処理を作りました

結果は、表示は問題ないのですがスペースキーを押してもUIが消えない
事があります。
正確には、消えたり消えなかったりという感じです。
スペースキー連打してたら消えるのですが・・・。

そのUI表示時にスペースキー押してUIを消そうとした時、デバッグのエラーに
「Destroying GameObjects immediately is not permitted during physics trigger
/contact, animation event callbacks or OnValidate. You must use Destroy instead.」
というエラーメッセージが必ず出ます

何が悪いんでしょうか?(もしかしてNGUIのUIはDestroyしたらダメなんですか?)

90 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 01:12:17.67 ID:i9hyodfO.net]
>>77
なるほど、ありがとん!

91 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 01:35:52.30 ID:mwLmwaX9.net]
>>88
簡単に書くとNGUIのイベントの中で自分をDestroy してはいけませんって事
もしすぐにぶちこわしたいのなら
gameObject.SetActive(false);
で非表示にしてから
StartCoroutine("DeleyedDestroy");
みたいにコルーチンを呼び出して
IEnumerator DeleyedDestroy() {
yield return null;
Destroy(gameObject);
}
と1フレーム遅くに破壊しないと駄目

92 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 01:45:56.31 ID:A3spulFo.net]
俺は親のPanelにSendMessageするなりメソッド直接呼ぶなりしてDestroyしてる
そういうエラーは出てないからこれでいいはず…いいよね?

93 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 01:59:32.14 ID:gCDT1VPE.net]
>>78
それ質問じゃないですよアセットおじさん

94 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 02:04:49.85 ID:Q4WnWElN.net]
>>92
Assetを購入すれば質問になりますよ

95 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 02:17:23.83 ID:1W4uEawq.net]
>>90-86
ありがとうございます。

NGUIって、普通に文章を表示する、ボタンを付けるという
凝った使い方しない場合はNGUI -> Scripts内のスクリプトって
弄る必要ないですか?
インスペクタだけ弄ってれば一般的なUI機能は使えますか?

96 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 02:28:54.98 ID:mwLmwaX9.net]
>>94
Assets/NGUI/Scripts/*/*.csの事?
余程特殊(継承したクラスで継承元のprotectでない変数見たいとか)な事しないかぎり普通変更しないよ

97 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 02:30:18.33 ID:1W4uEawq.net]
>>95
はい、その事です

通常はやはりインスペクタで調整するのですね
ありがとうございました。



98 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 02:51:01.55 ID:1W4uEawq.net]
すみません、>>90を実行してみたのですがやはり同じエラーが出て
すんなりとはUIが消えてくれません。
デバッグ見るとNGUITools.csの

static public void DestroyImmediate (UnityEngine.Object obj)
{
  if (

99 名前:obj != null)
  {
    ★if (Application.isEditor) UnityEngine.Object.DestroyImmediate(obj);
    else UnityEngine.Object.Destroy(obj);
  }
}

★でエラーが出ていました。
これはNGUIどうのではなく、UIの呼び出し条件、もしくは消去条件のif文あたりが
問題あるのでしょうか?
[]
[ここ壊れてます]

100 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 02:56:27.05 ID:Q4WnWElN.net]
>>97
Assetを購入することでエラーも出なくなりますよ

101 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 04:27:24.95 ID:PlJB/HNp.net]
このレベルの人間がアプリ作る時代だもんな
Unityは罪深いソフトだよ

102 名前:名前は開発中のものです。 mailto:aaa [2014/06/30(月) 05:17:10.38]
現在2Dで開発しています、
壁に当たった際に、キャラを右移動から下移動に切り替えるようにプログラム
していますが、よく見ると下だけではなく跳ね返って左側にも少し移動しています。

これは仕様なのでしょうか?
跳ね返り係数は0にしているはずですが、壁に当たり摩擦したように
速度が落ちることがあるのでないようにしたいです。

ちなみに、移動のための文は以下の一文の向きを変えてます。
transform.Translate(Vector3.right * 3 * Time.deltaTime);

103 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 06:06:06.66 ID:xbMO5WXk.net]
裾野が広がるのはいいことだけど
何でもかんでも質問する人には困るよな

ヒントもらったら自分で何とかしろ

104 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 06:26:37.61 ID:PlJB/HNp.net]
教えて君はダメだな

105 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 09:08:37.35 ID:A3spulFo.net]
とりあえずNGUIを入れ直した方がいいんじゃないか

106 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 09:22:50.74 ID:PtdaEyYt.net]
敵をtransform.LookAtでこちらを向かせ
transform.forwardでこっちに向かって来るというようにしたいのですが、
床に沈んでしまいます。

colliderの調整、rigidbodyのconstraintsのfreeze positionのYにはチェックを入れています。
床に沈まないようにするためにはどのようにすればよろしいのでしょうか?

107 名前:98 mailto:sage [2014/06/30(月) 09:32:55.86 ID:PtdaEyYt.net]
>>104
自己解決いたしました。
ありがとうございます。



108 名前:名前は開発中のものです。 [2014/06/30(月) 12:04:32.92 ID:tC9m33Xe.net]
◎2chスレッド勢いランキングサイトリスト◎

★+ニュース板
・ 2NN (推薦)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推薦)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推薦)
・ READ2CH
・ i-ikioi

※ 要タイトル名検索
※ 2chブラウザ併用推奨

109 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 14:20:06.55 ID:ALw2LC0O.net]
アセットを買おうとしたらガムロードに誘導されたんですが
ここはPayPalは使えないんでしょうか?
アセットストアから買ったほうがいい?常に最新ではないみたいだけど

110 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 19:35:37.91 ID:UQ1OJf+x.net]
maかfbxからライトのデータを取り込むことってできますかね
ライティングはunity内で調整するしかない?

111 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 19:40:15.99 ID:MG2Qxsma.net]
>>108
アセットを買えばできるとおもいますよ

112 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 21:54:47.32 ID:mwLmwaX9.net]
>>97
遅延評価しても駄目って事?(遅延評価の意味わかんないとちょっと論外)
エラーが自分を起点にしている呼び出しの中でImmidiate(即時)のDestroyは駄目って言う事を理解している?

ゲーム用のUIコードをUnity以外で書いた事あればすぐに何が悪いかわかるんだけど、コレは説明が難しいかもしらん。

113 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 22:42:41.46 ID:1W4uEawq.net]
>>110
すみません、ゲーム制作した事ないので初心者です・・・
完全に知識不足のようなので、とりあえずこの問題は後回しにしようと思います
ボタン連打すれば一応、閉じる事はできるのでゲーム進行不能になるわけではないですし

>エラーが自分を起点にしている呼び出しの中でImmidiate(即時)のDestroyは駄目って言う事を理解している?
半分は理解しているつもりです
「自分を起点」というところがちょっと理解できてないです

114 名前:名前は開発中のものです。 [2014/06/30(月) 23:03:48.33 ID:PlJB/HNp.net]
あきらめろん

115 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 23:07:26.15 ID:mwLmwaX9.net]
>>111
ボタンスクリプトのイベント拾ってその中でDestroy呼んでるのが駄目って事(発生元と消失が一緒)
そうなってない?

116 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 23:08:14.89 ID:MG2Qxsma.net]
>>111
アセットを買えばそんなの気にしなくてすむよ

117 名前:名前は開発中のものです。 mailto:sage [2014/06/30(月) 23:38:22.83 ID:1W4uEawq.net]
>>113
なるほど
でも発生元はオブジェクトAのInstantiateで消す時は
同じオブジェクトA内で>>90ですね

Instantiateしてからオ同じブジェクトAでDestroyしても
発生元と消失が同じとなるんでしょうか



118 名前:85 mailto:sage [2014/07/01(火) 03:55:59.52 ID:nHreHfmg.net]
>>115
そりゃ君の書いたコードに依存してるので僕からは何とも言えない。
どうしても添削して欲しいならどこかでコードを晒す以外に無いよ。

119 名前:名前は開発中のものです。 [2014/07/01(火) 11:11:04.26 ID:85UR2RLR.net]
javascriptで作業しています。

"open_switch"が"false"の場合
"motion_00"を再生します。
2秒したら再生としたいのですが、
下記のように書くとエラーが出てしまいます。
どのように書けばよいでしょうか。。。
宜しくお願いいたします。

var obj:GameObject;
var script:window_control;
function Start () {
if(!obj){
obj=GameObject.FindGameObjectWithTag("untagget");
}
script=obj.GetComponent("window_control");
}
function Update () {
if(script.open_switch==true){
animation.Play("motion_01");
}
else{
yield WaitForSeconds(2.0);
animation.Play("motion_00");
}
}

120 名前:名前は開発中のものです。 [2014/07/01(火) 11:12:58.80 ID:85UR2RLR.net]
111 です。
説明が足りませんでした。
2秒後ということで、
”yield WaitForSeconds(2.0);”と書くとエラーがでます。
こちらを書かないと、実行可能です。
宜しくお願いします。

121 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 12:14:02.96 ID:wmLFBxvR.net]
天安門事件

122 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 12:30:14.74 ID:pEsB09th.net]
そのyieldはどこに制御を返してるんだよ

123 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 13:33:09.43 ID:SbtrGu4q.net]
>>116
// ==================
// コリジョン
// 機能:プレイヤーヒット時に会話UIメソッドをコールする
// ==================
void OnCollisionStay2D ( Collision2D col ){

 // 衝突相手がプレイヤー
 if(col.gameObject.tag == "Player")
 {
  if(GameObject.FindWithTag ("UI") == null &&
  PlayerFlag == 1) //PlayerFlagは操作プレイヤー側のフラグ。プレイヤーがボタンを押した場合にON
  {
    // 会話UI表示メソッド
    Kaiwa();
  }

 if(GameObject.FindWithTag ("UI") != null &&
  PlayerFlag == 0) //UI表示時にプレイヤーが再度ボタンを押した場合にクリア
  {
    // 会話UI消去メソッド
    KaiwaDel();
  }
 }
}

124 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 13:51:18.75 ID:SbtrGu4q.net]
続きです

// =================================================
// 会話UI表示メソッド
// =================================================
void Kaiwa (){

  // 会話ウィンドウ表示
  Instantiate(Resources.Load("6.prefabs/UI_1"), windowPos, Quaternion.identity);
}

// =================================================
// 会話UI消去メソッド(開始)
// =================================================
void KaiwaDel (){

  // UIを非アクティブ
  GameObject.FindWithTag("UI").SetActive(false);

  // 消去メソッド本体コール
  StartCoroutine("DelMessage");
  }

IEnumerator DelMessage (){

  yield return null;
  Destroy(GameObject.FindWithTag("UI"));
}

というコードをコリジョンされる側に書いています(される側毎に別メッセージを表示するため)
何かおかしな箇所などありますでしょうか

125 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 18:34:44.20 ID:6DDxUZVh.net]
つか・・・もうそろそみんなGitHub使おうよ

126 名前:名前は開発中のものです。 [2014/07/01(火) 19:36:17.39 ID:85UR2RLR.net]
>>120
"yield"は、このスクリプトが
当てはめられている、ゲームオブジェクトに流れている

127 名前:モーション
”if”部分の”motion_00”
を2秒待って、次のモーションを流したいと考えています

まだ勉強初めたばかりで、上手く伝えられず申し訳ないです。
また"yield"を使わないでも、制御できるなら、
その手法も教えていただけるとありがたいです。
[]
[ここ壊れてます]



128 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 19:37:02.27 ID:nHreHfmg.net]
>>122
そのコードだけ見てる分には原因がつかめないね。
エラーが起きたときのスタックトレース(コンソールでエラーをクリックして表示される詳細)も付けてくれると少しは見えてくるかもしれない。

129 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 19:37:45.45 ID:nHreHfmg.net]
>>124
void Updateの中でyieldしちゃだめじゃないのかな

130 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 19:53:51.32 ID:SbtrGu4q.net]
>>125
レスありがとうございます。こちらになります。
i.imgur.com/TPLQJEH.png

もしかしてコードの問題ではなく、NGUIで構成したUIオブジェクトの作り方に
問題があるんでしょうか
正直、一つのサイトだけでは意味不明だったので色んなサイトを参考にして
つぎはぎのような感じで作ったので・・・

UI_1:子を含めた全ての管理(詳細は理解できていません)
Camera:UIのみを映すカメラ(画面に対する位置はこれで決める?)
Sprite:UIの背景画像オブジェクト(画面に対するUI本体の大きさとかはここで決める?)
Label:UIに表示する文字であるフォントオブジェクト(フォントの種類や大きさはここで決める)

という認識で作りました。

131 名前:名前は開発中のものです。 mailto:sage [2014/07/01(火) 19:59:02.35 ID:ld0xYEoC.net]
>>126
多分これ
例えばhanteiって関数を作って、update内を移植
でupdate内でhanteiを実行する

132 名前:名前は開発中のものです。 [2014/07/01(火) 22:52:30.64 ID:OEeCJUKWv]
>>128
アドバイスありがとうございます。
ちなみに、2秒後に("motion_00")を再生させるには、
具体的にはどのように関数を入れればよいでしょうか。。。
宜しくお願いします。

var obj:GameObject;
var script:window_control;
function Start () {
if(!obj){
obj=GameObject.FindGameObjectWithTag("untagget");
}
script=obj.GetComponent("window_control");
}
function Update () {
if(script.open_switch==true){
animation.Play("motion_01");
}
else{
yield WaitForSeconds(2.0);
animation.Play("motion_00");
}
}

133 名前:名前は開発中のものです。 [2014/07/01(火) 22:38:10.43 ID:85UR2RLR.net]
>>128
アドバイスありがとうございます。
ちなみに、2秒後に("motion_00")を再生させるには、
具体的にはどのように関数を入れればよいでしょうか。。。
宜しくお願いします。

var obj:GameObject;
var script:window_control;
function Start () {
if(!obj){
obj=GameObject.FindGameObjectWithTag("untagget");
}
script=obj.GetComponent("window_control");
}
function Update () {
if(script.open_switch==true){
animation.Play("motion_01");
}
else{
yield WaitForSeconds(2.0);
animation.Play("motion_00");
}
}

134 名前:名前は開発中のものです。 [2014/07/02(水) 00:36:45.57 ID:hSzZV3yyk]
unityでFPSを作っているものです。
ネットで見つけたサンプルのスクリプトを改良して、
以下のような弾を発射するスクリプトを書いたのですが、
インスタンス化をする場所の、座標の指定をどのようにして行うのかわかりません。
どなたかご教授していただけませんか?
#pragma strict
var bulletPrefab:GameObject;
var kankaku:float;
var shotSE : AudioClip;
var startTime:float;
var owaruTime:float;
var zikan:float;
var initialVelocity:float;
function start () {
owaruTime = Time.time;}
function Update () {
startTime = Time.time;
zikan = startTime - owaruTime;
if(zikan>kankaku)
if(Input.GetButton("Fire1")){

audio.PlayOneShot(shotSE);


var bullet:GameObject=Instantiate(bulletPrefab,transform.position,transform.rotation);

var direction:Vector3=transform.forward;
bullet.rigidbody.velocity=direction*initialVelocity;

owaruTime = Time.time;}
}

135 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 00:39:34.86 ID:QoBd/2mX.net]
>>130
具体的に言うとアセットを買えばいいと思うよ

136 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 00:47:38.76 ID:pKyuPS5V.net]
どうやったら2秒後に特定の処理を走らせるか なんて
誰が書いても大して変わらないし初心者には良い練習問題だと思うけどな

137 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 01:17:15.93 ID:N3YXxu3x.net]
>>130
この辺とかは参考になると思う
ttp://gamesonytablet.blogspot.jp/2012/12/unity.html

とりあえずコピペすれば動くコードよこせとかやってちゃ
進歩はない。



138 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 01:37:55.46 ID:wjodTEe/.net]
>>130
function Update () {

  if(script.open_switch==true)
  {
    animation.Play("motion_01");
  }
  else
  {
    yield StartCoroutine("Wait");
  }
}

function Wait () {

  yield WaitForSeconds(2.0);
  animation.Play("motion_00");
}

これでいけるのでは?
私も上で質問しまくってる初心者ですしCSで書いてるので
保証できませんが今コンパイルしたらエラーは出ませんでした。
yield StartCoroutine("Wait");はWait();でもいいのかもしれません
JSはStartCoroutineでコールしなくてもいいような記述がありましたので

139 名前:名前は開発中のものです。 [2014/07/02(水) 01:45:44.05 ID:+FRMTuKVe]
>>134
実はそちらのページも見ていて、
"Invoke"を利用して書いてみたのですが、
動きませんでした。
下記の形だと"else"の場合も2秒後になってしまいます。。。


var obj:GameObject;
var script:window_control;

function Start () {
if(!obj){
obj=GameObject.FindGameObjectWithTag("untagget");
}
script=obj.GetComponent("window_control");
//2秒後にモーションを再生
Invoke("Motiontimer", 2);
}

function Motiontimer () {
if(script.open_switch==true){
animation.Play("motion_01");
// }
}
else{
animation.Play("motion_00");
}
}

140 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 01:39:58.83 ID:N3YXxu3x.net]
それでも多分動くけど延々コルーチン呼び出すよねw

141 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 01:44:47.69 ID:wjodTEe/.net]
script.open_switchをtrueにしなければそうなりますが
恐らく判定を省略しているのでは?
私も全部は行数オーバーで1回でレスできないので略す事が多いので・・・

142 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 02:03:19.53 ID:N3YXxu3x.net]
でもscript.open_switchをtrueに戻しちゃうと即
animation.Play("motion01");
が効いてmotion00は1フレームだけしか再生されなからな〜。

まぁきっと色々省略してるんだよなw

143 名前:名前は開発中のものです。 [2014/07/02(水) 02:25:46.30 ID:+FRMTuKVe]
>>136
アドバイスありがとうございます。
下記のような形で書いてみましたが、
"motion01"が再生されないですね。。。
自分でも調べてみます。
また、"motion00"はもともと静止モーションなので
1F再生でも大丈夫です。

var obj:GameObject;
var script:window_control;

function Start () {
if(!obj){
obj=GameObject.FindGameObjectWithTag("untagget");
}
script=obj.GetComponent("window_control");
}

function Update () {
if(script.open_switch==true){
animation.Play("motion_01");
}
else{
yield StartCoroutine("Wait");
}
}

function Wait () {
yield WaitForSeconds(2.0);
animation.Play("motion_00");
}

144 名前:名前は開発中のものです。 [2014/07/02(水) 02:33:39.23 ID:+FRMTuKVe]
>>135
140です。
実行自体は出来ますが、
"Script error (panel_control): Update() can not be a coroutine."
コールーチン出来ないと出てしまいます。

145 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 04:51:39.34 ID:uZr6i5PP.net]
C#とjsどっちで書いたらいいんよ
差はあるんか?

146 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 05:08:09.00 ID:QoBd/2mX.net]
>>142
アセットを購入すると差がなくなったりすると思います

147 名前:名前は開発中のものです。 [2014/07/02(水) 05:09:48.86 ID:VPrZ3A9M.net]
まあC#だろうな



148 名前:名前は開発中のものです。 [2014/07/02(水) 05:55:10.24 ID:+FRMTuKVe]
140です。
コルーチンというものを、
一通り読ましていただき、
下記のように記入し無事解決しました。
アドバイスを色々いただき、ありがとうございます!

function Update () {

if(script.open_switch==true){
StartCoroutine("Wait");
}
else {
animation.Play("motion_00");
}
}

function Wait(){
yield WaitForSeconds(2.0);
animation.Play("motion_01");
}

149 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 07:24:57.54 ID:Q9Mkocfr.net]
処理速度の差はないという話は何度か出た
あとこのての話は、回答者の自分が好きな言語を勧めてくる展開になるので決着はない。

Booこそ至高。

150 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 08:06:04.92 ID:EWc2yUWa.net]
黄色い本にはUnityはJスクが一番効率が良くなるように作られてるとか書いてあったな
俺は単に読み慣れてるからC#

151 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 13:08:50.30 ID:uZr6i5PP.net]
C#で攻めるぜありがとう

152 名前:名前は開発中のものです。 [2014/07/02(水) 16:06:45.90 ID:hSzZV3yyk]
すいません・・・
>>131です。
書き忘れていましたが言語はjavascriptです。
おそらく↓の行を変えればいいのだろうというのは分かるのですが、
どのサイトを見ても具体的に解説してくれている場所がありませんでした。
var bullet:GameObject=Instantiate(bulletPrefab,transform.position,transform.rotation);

153 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 18:21:25.12 ID:lJtkd36h.net]
javaスクリプトじゃ結局やりきれないしな
c#がいいよ

154 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 19:49:19.17 ID:ASPst2OS.net]
C#はいちいちクラス書かないとだめだから糞

嘘 jsのほうが簡単だと思ってjsから始めただけです

155 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 20:16:41.09 ID:zCy25au/.net]
javascriptで出来ないことってあるのか?

もし無いならjsで始めちゃったしそのまま行きたいんだが・・・・

156 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 20:35:37.36 ID:QlXU2+TL.net]
俺もパッと見シンプルなJSで始めちゃって今更移ろうとしても違和感が
GetComponent<type>()の<>てなんだよ・・・いやわかるけど、JSに慣れてると納得いかんことが多くて困る
C#のが機能が多いらしいけどインターフェースの継承とか自分は使わんしなあ
ほんと、どっちがいいかは人によると思う

157 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 20:40:01.71 ID:zLf1ED1q.net]
無能の言い訳じゃねぇかw



158 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 20:45:09.76 ID:JKcw5LB+.net]
>>152
できない事はない
MonoBehaviourからのデフォルト継承以外にも一応独自クラスから継承もできる(class宣言いるけど)
ただC#のコードと混ざるような事をするときにコンパイル順序の問題で困る事がある(C#のクラスにJavascriptのクラスを保持したり継承したりするとき)

159 名前:名前は開発中のものです。 mailto:sage [2014/07/02(水) 20:50:41.98 ID:zojBDLQs.net]
javascriptでもある程度慣れればC#は推測で読めるようになってくると思います。

確かにGetcomponentの<>に最初首を傾げてしまいましたが

それと、GameObject(3dモデル)を複数のスクリプトのStart内から、参照させたらその内の一つが存在しないcloneを参照しちゃったのですが、その原因が未だに分かりません……

tagで参照したのですが、参照させる数に制限はあるのでしょうか?

取り敢えず今は救済処置で、ゲームコントローラーで、モデルを生成して、そいつの名前を参照させたら旨く行きました。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<345KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef