■ このスレッドは過去ログ倉庫に格納されています
【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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
- 232 :名前は開発中のものです。:2014/08/19(火) 16:38:07.64 ID:kx1/iXJi.net
- 或いはもうちょっとスムーズに動かしたいなら
using UnityEngine;
using System.Collections;
public class test2 : MonoBehaviour {
UISlider sl;
Vector3 pos;
Vector3 dump=Vector3.zero;
public float smthTime=1f;
public float maxSpd=3f;
void Start () {
sl = GameObject.Find("HorizonSlider").GetComponent<UISlider>();
pos = transform.position;
}
void Update () {
pos.x = (sl.sliderValue-0.5f)*10f;
transform.position = Vector3.SmoothDamp (transform.position, pos, ref dump, smthTime, maxSpd);
}
}
とかでもいい。
もう少し簡易にVector3.LerpやVector3.Slerpでもいいだろうし。
- 233 :名前は開発中のものです。:2014/08/19(火) 16:38:34.72 ID:SDJ5Szcg.net
- 皆さんが優しすぎて甘えてしまいそうです
- 234 :名前は開発中のものです。:2014/08/19(火) 19:25:32.04 ID:MCm34Oqg.net
- すみません、FPS作ってるのですが、アセットから辛うじてカメラ正面にRayを飛ばして模擬的に弾丸を真似してるのはわかったのですが、
その際の銃本体の視点への追従の仕組みが分かりません。
単に、銃をRayがヒットした場所にLookAtでよろしいのでしょうか?
だとしても、リロード時の銃身の動きはスクリプトでできるものなのでしょうか。
- 235 :名前は開発中のものです。:2014/08/19(火) 20:48:43.96 ID:QiSZCTeY.net
- >>234
アセットは買いましたか?
- 236 :名前は開発中のものです。:2014/08/19(火) 21:01:23.92 ID:ARA40/9x.net
- >>234
作りのレベルにもよるんだろうけどああいうのは基本的に
FPS用の腕と銃みたいなのをカメラに親子付けしとけばいいんじゃね?
リロード用のアニメーションつけておいて
リロード時はそれを再生する。
- 237 :名前は開発中のものです。:2014/08/19(火) 21:04:05.83 ID:eg7yj5lw.net
- ステータスとかキャラの位置を表示するためのビルボードを表示させてるんだけど
それの描画がスクリーン座標上で重なってしまった時に後側のビルボードを重ならない位置にずらすってどういうアルゴリズムで実装すればいいんだろうか
- 238 :名前は開発中のものです。:2014/08/19(火) 21:20:12.42 ID:ZLkux2zU.net
- >>232
やさしいのぉ
やさしいのぉ〜(;_;)
ありがとう。
わからないことがあったらまたバンバン聞くぜっ。
- 239 :名前は開発中のものです。:2014/08/19(火) 21:26:20.12 ID:cYa/Ca0p.net
- その代わり自分の知ってることを誰かが質問してたら教えてやれ
- 240 :名前は開発中のものです。:2014/08/19(火) 21:32:24.25 ID:MCm34Oqg.net
- >>236
ありがとうございます。やっぱりあのモーションをスクリプトで実現するのは骨が折れますよね…
- 241 :名前は開発中のものです。:2014/08/19(火) 21:33:44.62 ID:ARA40/9x.net
- >>237
言ってしまえば物理処理の衝突と同じなんじゃね?
重なりを検出してどの方向に押し出すか決めて移動させる。
前後をどうするのかとかは自分で決めるしかないけど
それが決まれば前後順にソートして前から優先で位置決めしていけばいい。
- 242 :名前は開発中のものです。:2014/08/19(火) 21:36:22.98 ID:QiSZCTeY.net
- >>237
アセットをかえば簡単にできますよ
- 243 :名前は開発中のものです。:2014/08/19(火) 21:40:14.53 ID:HJlGowUA.net
- 予めモデルにくっ付いてるアニメーションは
他のモデルに流用出来ないのでしょうか?
- 244 :名前は開発中のものです。:2014/08/19(火) 21:40:50.36 ID:eg7yj5lw.net
- >>241
やっぱりレイ投げたり当たり判定取って後は地道な移動する感じかな
地道に処理書きます
ありがとう
- 245 :名前は開発中のものです。:2014/08/19(火) 21:44:44.48 ID:ARA40/9x.net
- >>243
まったく同じ構造・名前の骨なら
そのままどういう手段でも使える。
mecanimでHumanoidなら
多少違う構造でもある程度使える。
場合によってはおかしくなる。
- 246 :名前は開発中のものです。:2014/08/19(火) 22:00:41.94 ID:HJlGowUA.net
- >>245
Humanoidでスキニング行列の動作確認も出来ているにも関らず動かない場合は
アニメータコントローラの条件等の設定ミスを疑うべきでしょうか?
- 247 :名前は開発中のものです。:2014/08/19(火) 22:30:36.80 ID:ARA40/9x.net
- >>246
まぁコントローラ側の設定がおかしければ
それはもうアニメーションの問題ではないからなぁw
プレビューウインドウで適切にアヴァター選んで動くようなら
アニメーションのデータ自体は大丈夫なはず。
- 248 :名前は開発中のものです。:2014/08/19(火) 23:07:10.23 ID:x5wCXhk9.net
- >>247
ですよね
ありがとうございました
- 249 :名前は開発中のものです。:2014/08/19(火) 23:16:22.04 ID:gRimHKsi.net
- MonoDevelopで「.」を押すと補完されるおせっかい機能はどうすれば無効にできますか?
- 250 :名前は開発中のものです。:2014/08/20(水) 02:15:09.21 ID:xJA8Et7G.net
- >>249
アセットをかえば無効にできますよ
- 251 :名前は開発中のものです。:2014/08/20(水) 06:36:03.86 ID:87IaKluD.net
- PlayerSettingsで設定するWindowsのScreenResolutionがなぜか反映されない・・・
前回ビルド時の画面サイズが勝手に適用されてしまう
- 252 :名前は開発中のものです。:2014/08/20(水) 08:17:08.43 ID:xJA8Et7G.net
- >>251
アセットをかえばいいとおもいますよ
- 253 :名前は開発中のものです。:2014/08/20(水) 08:50:10.78 ID:7+eCtfZ1.net
- >>249
ToolsメニューのOptionsを選択して
TextEditorのGeneralを選択して
Enable code completionのチェックをはずす
- 254 :名前は開発中のものです。:2014/08/21(木) 00:06:01.69 ID:UjCIVMhj.net
- public const Vector3 xxxxx = new Vector3(0f, 0f, 0f)
って出来ないんでしょうか。
やったけどエラーになりました。
- 255 :名前は開発中のものです。:2014/08/21(木) 00:18:33.25 ID:LR/WB4rJ.net
- >>254
アセットをかえばいいとおもいますよ
- 256 :名前は開発中のものです。:2014/08/21(木) 00:23:48.83 ID:ZMzzdvjf.net
- 一番後ろ、;(セミコロン)がない…ではないですよね
すみません、javascript派の私にはC#の文法すら不安定なんです…
- 257 :名前は開発中のものです。:2014/08/21(木) 00:32:13.99 ID:uELHl3ca.net
- >>254
なんかそれはできないらしいよ。
この辺参照
ttp://answers.unity3d.com/questions/60262/the-type-unityenginevector3-cannot-be-declared-con.html
- 258 :名前は開発中のものです。:2014/08/21(木) 01:07:26.32 ID:8d94nKJq.net
- 初めてビルドしたんだけど、Webビルドしてブラウザで実行させるとGUIボタンがクリック出来なかったんだ。
ゲーム開始直後に変数trueでGUIボタンを表示するようにスクリプト書いてたんだけど、その変数は宣言時にfalseを代入してたんだ。
まさかと思ってStartメソッドでfalse代入するように書き換えてWebビルドしたら、GUIボタンがクリックできるようになったんだ。
スタンドアロンのビルドは変数宣言時代入でも普通に動作してたんだけど、WebビルドってStart内で変数初期化しないとダメなの?
- 259 :名前は開発中のものです。:2014/08/21(木) 01:11:30.95 ID:LR/WB4rJ.net
- >>258
アセットをかえばできると思いますよ
- 260 :名前は開発中のものです。:2014/08/21(木) 02:02:32.74 ID:WTALi2BO.net
- >>259
アセットをかえばできると思いますよ
http://unity3d.com/unite/unite2014/keynote
- 261 :名前は開発中のものです。:2014/08/21(木) 02:07:58.69 ID:FY4IWOMe.net
- Vector3.zero
- 262 :名前は開発中のものです。:2014/08/21(木) 03:03:48.60 ID:iTAS0eP5.net
- >>258
public bool useGUI = false;
とかpublicで宣言してたりしたらインスペクタで値を設定しちゃうとシリアライゼーションでシーンにインスペクタの値で保存されちゃうんだけど間違ってそういう操作したりしてないか?
- 263 :名前は開発中のものです。:2014/08/21(木) 16:34:35.64 ID:Jqw6iCnU.net
- プレイヤーキャラクターごと動く「動く床」を作りたいんですがやり方がわかりません。分かる人いたら教えて下さい。
現状、色々ググった結果、
「動く床」の子要素にキャラクターを持ってくれば一緒に動いてくれるようだと理解しました(あってるかどうかはさておき)
(例えば http://blog.be-style.jpn.com/article/58581741.html )
そこで試しに作ってみたケース1がこれです↓
( https://3ac7952d4f3d414f13ef5ac978121676474d7eb4.googledrive.com/host/0B3YVex4p4Ui0LXVQaWhSYmVwWnM/UGOKUYUKA.html )
↑で前進 ←→で旋回 ↓でバック スペースキーでジャンプ ドラッグでカメラ回転 右クリックドラッグでズームイン・アウト
OpenDoorを押すと足元のブロック(floor)に力が加わって動きます。動くブロックの上に浮いているブロックに触れている間、ビキニのキャラクターが動くブロックの子要素に入ります
結果、画像のように浮いているブロックに触れている間は「bikini」は「floor」の子要素になり、離れると子要素からも外れます。
http://iup.2ch-library.com/i/i1266692-1408603985.png
http://iup.2ch-library.com/i/i1266695-1408604210.png
ですが、キャラクターはfloorと一緒に動いてくれません。落ちます。
続く
- 264 :名前は開発中のものです。:2014/08/21(木) 16:36:11.63 ID:Jqw6iCnU.net
- >>263でfloorとキャラクターを結びつけているスクリプトが以下floorとbikiniを結びつけているスクリプトは以下↓
#pragma strict
var player : GameObject;
var floor : GameObject;
function OnTriggerEnter (Other : Collider) {
if(Other.gameObject.tag == "Player"){
player.transform.parent = floor.transform;
}}
function OnTriggerExit (Other : Collider) {
player.transform.parent = null;
}
続く
- 265 :名前は開発中のものです。:2014/08/21(木) 16:41:31.12 ID:Jqw6iCnU.net
- ケース2がこれです↓
( https://84a708f0eabd3f2702c6ab12a4dde86dc30c463c.googledrive.com/host/0B3YVex4p4Ui0WUhFSkZzODVxaVU/UGOKENAIYUKA.html )
これだとOpenDoorでfloorと一緒に動いてくれますが、今度はキャラクターが操作できません(ジャンプはなぜかできる)。
親子関係のスクリプトは以下
#pragma strict
function OnControllerColliderHit(hit : ControllerColliderHit) {
if (hit.gameObject.name == "floor") {
transform.parent = hit.gameObject.transform;
} else {
transform.parent = null;
}
}
どうすれば動く床と一緒にキャラクターを動かせて、かつ操作できるんでしょう。
- 266 :名前は開発中のものです。:2014/08/21(木) 16:55:58.91 ID:qmSeZOfZ.net
- >>265
アセットをかえば簡単楽にできますよ
- 267 :名前は開発中のものです。:2014/08/21(木) 18:14:44.56 ID:ZMzzdvjf.net
- おそらくキャラクター操作のスクリプトの位置更新情報がワールド座標だから、上書きされてるとか?
ケース2の場合は、完全に、足場とポジションを同期しちゃってるじゃん…
多分、各当たり判定系のスクリプトの更新順序とかだろうけど、もっと詳しい人に期待
位置を更新するときに加算でポジショニングが出来ればいいんだろうけど
これの上下運動版がアングリーボットにあったはず
もしかしたら参考になるかもしれない
- 268 :名前は開発中のものです。:2014/08/21(木) 19:02:40.96 ID:F8+uwHwG.net
- http://japan.unity3d.com/developer/document/tutorial/2d-shooting-game/game/10.html
このチュートリアルまで無事終わらせて、一旦Unityを終了させて再度起動→テストプレイすると
NullReferenceException: Object reference not set to an instance of an object
Manager.IsPlaying () (at Assets/Scripts/Manager.cs:41)
Emitter+<Start>c__Iterator0.MoveNext () (at Assets/Scripts/Emitter.cs:29)
というエラーが出ました。
ManagerオブジェクトのManagerスクリプトコンポーネントを一度消去して
再度同じコンポーネントを取り付けるとエラーが出ずにテストプレイできたのですが
Unityを再起動した時には、やはりエラーが出ます
これは何が原因なんでしょうか
あとエラーを防ぐ方法はありますか?
- 269 :名前は開発中のものです。:2014/08/21(木) 19:15:42.29 ID:qmSeZOfZ.net
- >>268
その手のエラーは、よくあって解決方法としては、アセットをかうことをオススメします
- 270 :名前は開発中のものです。:2014/08/21(木) 20:19:39.49 ID:uELHl3ca.net
- >>268
Managerの中のタイトルオブジェクトが取得されない内に
Emitter側がManagerのタイトルオブジェクト参照してる
関数を呼び出そうとしてる、というのが原因。
解決方法は正直よくわからないw
・スクリプトの実行順序をExcuteOrderで決めてしまう(恐らく確実)
・Managerのタイトルオブジェクトtitleについてpublicにした上でインスペクターで対象を設定してGameObject.Find()は削除。(まず間違いなく確実)
・Managerオブジェクトから一度全部スクリプトを削除して登録の順番を変えてみる(効果あるかわからん)
とか、そんなあたりか?
- 271 :名前は開発中のものです。:2014/08/21(木) 21:10:17.88 ID:1mqVsYYE.net
- 実行した時にいずれかのオブジェクトのインスペクタを表示していると
そのオブジェクトについてなるレフが出るみたいなバグがあったな
- 272 :名前は開発中のものです。:2014/08/21(木) 21:19:40.36 ID:F8+uwHwG.net
- >>270
なるほど原因よく分かりました
ExcuteOrder設定するのが簡単で手早かったです
ありがとうございました!
- 273 :名前は開発中のものです。:2014/08/21(木) 22:32:15.10 ID:jIF4Pxw8.net
- >>263
ttp://mcs.jp/flash/93
PCを動く床の子要素にしないやり方だが、俺が2Dで動く床を作るときに参考にした記事。
3Dでも考え方自体は使えると思うのだが、参考になるかな。
- 274 :名前は開発中のものです。:2014/08/21(木) 22:33:49.87 ID:uELHl3ca.net
- >>263
俺も自分がやろうと思ってた実験がてら
ちょこまかいじってたがよくわからんかったな〜。
なんかどっちもできそうな感じなんだが。
ttp://www1.axfc.net/u/3302185
- 275 :名前は開発中のものです。:2014/08/21(木) 23:14:02.77 ID:Jqw6iCnU.net
- >>267 >>273 >>274
回答ありがとうございます。アングリーボッツはエレベーターの移動(は単に上下させているだけのようでしたが)以外の点も役に立ちそうです。雨を降らせられるというのが地味に発見でした。
271さんのは理屈の理解に役立ちそうです。
>>274さん ナイスです。しばらくいじらせてもらいます。
- 276 :名前は開発中のものです。:2014/08/22(金) 02:23:31.17 ID:sVGMtpYp.net
- Unityを触り始めてとりあえずキャラをanimatorで動かそうとしてるのですが、
初心者講座を真似て
setBool(string,bool)でConditionsで設定した変数を書き換えようとしてもアニメーションが変わらないです…
初心者がやりがちなミスとかありますか?
Play(string)でアニメーション書き換えは動くんだけども…
- 277 :名前は開発中のものです。:2014/08/22(金) 03:17:23.85 ID:KCdPGFaf.net
- >>276
アニメーション変移の矢印の設定は、確認した?
- 278 :名前は開発中のものです。:2014/08/22(金) 03:24:12.30 ID:xQWI6Sb9.net
- >>257
そうですか、ありがとうございます。
(´・ω・`)
- 279 :名前は開発中のものです。:2014/08/22(金) 04:50:04.97 ID:xQWI6Sb9.net
- 「ボタンを用意して、
押したらブラウザを立ち上げて指定のURLを開く」
ということをしたいのですが、
調べようにも取っ掛かりになるキーワードがわかりません。
どのリファレンスを見れば良いでしょうか。
もしくは、直接的なヒント貰えるとありがたいです。
- 280 :名前は開発中のものです。:2014/08/22(金) 05:15:30.28 ID:np7Y3ytG.net
- http://jobinjapan.jp/job-listing/keyword-unity.html
- 281 :名前は開発中のものです。:2014/08/22(金) 05:18:43.83 ID:1m8E2c2I.net
- >>279
スタンドアロンプレイヤーに関しては
ttp://docs.unity3d.com/ScriptReference/Application.OpenURL.html
AndroidとかiOSとかはわからん。
Androidに関してはこんなページもあった。
ttp://stackoverflow.com/questions/18410819/launch-url-in-android-browser-from-unity
- 282 :名前は開発中のものです。:2014/08/22(金) 05:21:54.69 ID:xQWI6Sb9.net
- >>281
説明足りませんでした、iOS です。
でも、頂いたリンク、これから見てみます。
ありがとうございます。
Webviewとか大掛かりなことにならなければ良いんですが…
- 283 :名前は開発中のものです。:2014/08/22(金) 06:21:14.05 ID:1mQiZxIz.net
- 物理演算した結果の散乱した玉の配置とか、良い感じにシワの付いたclothとかをそのままの形でScene画面に持っていく方法ってあるのかな?
- 284 :名前は開発中のものです。:2014/08/22(金) 06:36:04.03 ID:xQWI6Sb9.net
- >>281
Application.OpenUrl で普通に行けました!
ぜんぜん違うことを考えてたので、
とても助かりました。
ありがとうございます!
- 285 :名前は開発中のものです。:2014/08/22(金) 07:04:21.75 ID:1m8E2c2I.net
- >>283
どこから?
3DのDCCツールからの話ならUnityの話というより
それぞれのツールにおけるデータのフリーズの問題で
それがどの程度fbx吐き出し出来るか、
どういうやり方があるかはツールによる。
Unity内の話なら、ってそれはないか。
そもそもシーン内にあるものだしなぁ。
- 286 :名前は開発中のものです。:2014/08/22(金) 08:08:53.09 ID:1mQiZxIz.net
- >>285
あ、Unity内の話です
Unityで物理演算させても停止させるとまた元の状態に戻ってしまうので
その物理演算の結果をSceneに反映できないかなあと
- 287 :名前は開発中のものです。:2014/08/22(金) 08:26:33.31 ID:sVGMtpYp.net
- >>277
指定できてますね
ボタンが押されてないとかは無いです。
ボタンが押された時に歩き出すっていうのをしたいのですが・・・
- 288 :名前は開発中のものです。:2014/08/22(金) 08:55:31.44 ID:GN0ZjNPs.net
- >>287
アセットをかえばいいと思うよ
- 289 :名前は開発中のものです。:2014/08/22(金) 08:57:55.29 ID:1m8E2c2I.net
- >>286
エディタ拡張が必須だしクロースにいたっては新しくメッシュを生成して保存しなければならない。
まぁ簡便な方法はない、と思って間違いない。
ちなみに物理演算で散らばったものの状態を保存するってタイプのアセットは有料ならある。
ttps://www.assetstore.unity3d.com/jp/#!/content/188
- 290 :名前は開発中のものです。:2014/08/22(金) 09:15:48.49 ID:1m8E2c2I.net
- >>287
アニメーターウインドウをゲームウインドウと別に置いて
ボタン押したらセットブールがちゃんと動いてるのかとか
見るほかないんじゃないかな〜。
できないとかそういうことはあり得ない事例だし。
- 291 :名前は開発中のものです。:2014/08/22(金) 15:44:29.49 ID:g1NAWEJC.net
- 今使ってるパソコンから違うパソコンへ制作中のプロジェクトを移す場合はどんな方法がありますか?
ふつうにフォルダごとコピペしても開けないですよね?
- 292 :名前は開発中のものです。:2014/08/22(金) 16:04:22.39 ID:7jPcji1M.net
- >>291
Assets > Export Package は?
- 293 :名前は開発中のものです。:2014/08/22(金) 16:11:28.61 ID:0wWnnEk+.net
- >>291
アセットを買えばいいと思いますよ
- 294 :名前は開発中のものです。:2014/08/22(金) 16:17:43.76 ID:deKcb9FB.net
- >>291
gitとかでプロジェクト共有できるので
その辺の設定とか調べれば大体わかるかとは。
でも丸々移しちゃうなら確かにエクスポートパッケージで
プロジェクト丸ごと出しちゃえばいいのか。
- 295 :名前は開発中のものです。:2014/08/22(金) 16:34:03.30 ID:g1NAWEJC.net
- なるほどパッケージ化してインポートしなおせば良いんですね
盲点でした…ありがとうございます!
- 296 :名前は開発中のものです。:2014/08/22(金) 16:45:24.84 ID:vBGx3Mvn.net
- 今後のためにgit使えるようにするのおすすめ
移すどころか、両方のPCで同時に作業進められる
- 297 :名前は開発中のものです。:2014/08/22(金) 16:49:17.51 ID:g1NAWEJC.net
- そんな便利な機能が…是非使ってみます!教えて頂き、ありがとうございます
- 298 :名前は開発中のものです。:2014/08/22(金) 18:46:59.43 ID:E+zspQ4b.net
- git はバイナリファイルが多いと使いにくいと聞く
- 299 :名前は開発中のものです。:2014/08/22(金) 19:50:36.93 ID:deKcb9FB.net
- 差分とかは取れないからなぁ。
でも個人レベルでプロジェクト分だけなら全然いけると思う。
リソース分とかまでまとめてやってたんだけど
グラフィックリソースマジで作り始めるとかなりどうにもならんことに…。
バージョン管理するにしても別々にやった方がいいな〜って感じ
- 300 :名前は開発中のものです。:2014/08/22(金) 20:54:55.80 ID:yjYSmQzN.net
- 別のPCにもって行くだけならAssetsとProjectSettingsを丸まるコピー(zip化すると尚良い)するのが一番手っ取り早い
何度も行き来するならgitとか使った方がいいんだろうけど
- 301 :名前は開発中のものです。:2014/08/22(金) 21:05:21.54 ID:deKcb9FB.net
- gitでやるとプロジェクトセッティングとか確認しながら合わせなきゃならんしね〜
- 302 :名前は開発中のものです。:2014/08/22(金) 22:32:39.34 ID:ZkZV2bws.net
- uGUIのベータ試した奴いる?
使い勝手どうよ?
- 303 :名前は開発中のものです。:2014/08/22(金) 22:47:11.83 ID:deKcb9FB.net
- 入れてはみた。
パネル置いて部品配置してく感じでまぁ当然なんだろうけどnGuiライク。
組み付けだからかカメラ置かずともオーバーレイしてくれる。
もちろんカメラも置ける。
イベントリスナーみたいなオブジェクトとかあったな〜。
ボタン、スライダ、チェックボックス、テキストボックスとか色々部品入ってて
とりあえずUI作るのは大分楽になりそうだったよ。
- 304 :222:2014/08/22(金) 23:11:49.67 ID:2/+giryd.net
- >>231
先日教えていただいた
using UnityEngine;
using System.Collections;
public class test : MonoBehaviour {
UISlider sl;
Vector3 pos;
void Start () {
sl = GameObject.Find("HorizonSlider").GetComponent<UISlider>();
pos = transform.position;
}
void Update () {
pos.x = (sl.sliderValue-0.5f)*10f;
transform.position=pos;
}
}
を実行するとprayerが特定の場所に飛んでいき
そこから動けなくなりました。
Updateの
transform.position = pos;
が原因のようです。
とりあえずUpdateを
transform.Translate (pos.x = (sl.sliderValue-0.5f)*50f*Time.deltaTime, 0, carspeed*Time.deltaTime);
(前に進みながらスライダーで左右に移動)
で目的のことができたのでひとまずO.Kなのですが
お教えいただいたのが上手く行かなかった理由がわかりません。
エスパーしていただかないとわからないことが多いと思いますが
思いつく範囲でお教えいただけますでしょうか。
- 305 :名前は開発中のものです。:2014/08/23(土) 01:07:44.68 ID:7Ja2HaqJ.net
- >>304
原因も何もそれはプレイヤー以外のものが全てスクロールで
プレイヤーユニットは左右にのみスライダーに沿って動く、
という前提の処理なので。
何故動かせないかといえば
transform.positionの値を直接指定してしまっているから。
transform.Translate()は現在の位置からローカル座標で動く方向と量を指定して動かしている。
つまり命令の内容としては「ここから自分目線で前に1(Vector3.forwardとか)動かします」ということ。
しかし
transform.position=Vector3.forward;
とか書けば「座標(0,0,1)に移動しろ」ということになる。
直接いるべき座標を指示してしまっているのだからそこからは動けない。
ということ。
- 306 :名前は開発中のものです。:2014/08/23(土) 01:11:43.21 ID:h9HBdPcx.net
- >>304
アセットをかえば動くと思うよ
- 307 :名前は開発中のものです。:2014/08/23(土) 02:40:33.39 ID:shCBB+Vm.net
- 相当シンプルなスクリプト組んだのにWebビルドとデスクトップビルドで
挙動が微妙に違う(っていうか一部スプライトがアニメーションしない)んだけど
Unityってこういうマルチプラットフォームで動作違いって結構あるの?
- 308 :名前は開発中のものです。:2014/08/23(土) 08:53:47.91 ID:dXNZu5QK.net
- au氷水ディレクター戦争指名タイステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらい山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり塩肉マンつばめの巣担々麺野菜炒めラーメン
au氷水ディレクター戦争指名タイステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらい山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり肉マンつばめの巣塩担々麺野菜炒めラーメン
au氷水ディレクター戦争指名タイステーキ万国ニューヨークブカ牛肉直輸出制限業者議論病院雇用市議しょうゆダシマクッロスさむらい山雪光金ガンダム風ミックドラ社員あかうんとパズ豚骨のり肉マンつばめの巣塩担々麺野菜炒めラーメン
ニンニクヤーフォー低額土地NHK教授問題横浜名古屋遅延電池切れ福岡損保新規駐車近代ゲームフジワイプタレントリモコン転職提案ラーメン
abk公式審判漏洩安保険王なにあげてんだよ?「わー!ふーう?」↓↓★★↓↓宿題通調印鑑カウントダウンたまらんだけ労災募金額税金息子議員国会大学生
- 309 :名前は開発中のものです。:2014/08/23(土) 12:50:00.01 ID:T2BBJqwd.net
- iPhone5用の640*1136の解像度をGameViewでプレビューする方法はありますか?
15 インチ(2880 x 1800)のRetina Macbook Proを使ってますが、
「Maximize on Play」をオンにしていても430*764までしか拡大されないようで…
UIのレイアウトを組みたいんだけど、結果がプレビューできなくて困ってます。
- 310 :307:2014/08/23(土) 13:13:52.06 ID:T2BBJqwd.net
- ひょっとしてGameViewって、
解像度じゃなくてアスペクト比だけ指定して使うものなのかしら??
iPhone5縦持ちを想定していますが、カスタム設定で、
Fixed ResolutionじゃなくてAspect Ratioで9:16にして、
それを見ながら置いていけば正しい座標に置けているってことなのかな??
- 311 :名前は開発中のものです。:2014/08/23(土) 13:27:39.15 ID:JjW1vPOg.net
- >>310
UnityのGameViewはそういうものだぞ
開発環境のピクセル数を一致させてるわけじゃないから
- 312 :307:2014/08/23(土) 13:37:17.29 ID:T2BBJqwd.net
- >>311
そうなんですね。
だとすると、GUI.ButtonやGUI.LabelのRectの座標って、
どうやって正しい配置でプレビューしてるんですか?
GUI.Button(Rect(30, 40, 200 10))
↑この30,40が実機(実寸)だとどんな感じかなーというのを見ながら調整したいなと。
それとも、座標の絶対値じゃなくて、ディスプレイの何分の一あたり、みたいな相対指定の方法もあるんでしょうか。
教えてもらえたら助かります!
- 313 :名前は開発中のものです。:2014/08/23(土) 13:41:54.28 ID:JjW1vPOg.net
- >>312
GameViewウィンドウの左上でPixcel数指定以外にもアスペクトレシオベースの表示設定あるだろ。
まさかFree Aspectのまま作ってるのか?
- 314 :307:2014/08/23(土) 13:48:28.89 ID:T2BBJqwd.net
- >>313
308に書いた通り、9:16のAspect Ratioに設定してやってます。
Rectの引数として書く最初の二つの数字の意味を理解していないのかも…
あれって10=10pixelというわけではないんですかね?
- 315 :名前は開発中のものです。:2014/08/23(土) 13:54:47.21 ID:8wwhNy9o.net
- Stats で Screen: 横x縦が表示されるから、フルスクリーンにしないでそれを見ながら
タブのサイズを調整して欲しい画素数になるようにしている。
- 316 :名前は開発中のものです。:2014/08/23(土) 14:05:08.02 ID:4AFhlQFQ.net
- 下記コードのwhile文の最初に
if(!spaceship.startShot)continue;
を書いたらフリーズするようになってしまったんですが原因分かりますでしょうか?
IEnumerator Start(){
//canShotがfalseの場合ここでコルーチンを終了する
if(spaceship.canShot == false)
yield break;
while(true)
{
if(!spaceship.startShot)continue;
//子要素を全て取得する
for(int i=0; i < transform.childCount; i++){
Transform shotposition = transform.GetChild(i);
//ShotPositionの位置、角度で撃つ
spaceship.Shot(shotposition);
}
//ShotDelay秒待つ
yield return new WaitForSeconds(spaceship.shotDelay);
}
}
- 317 :名前は開発中のものです。:2014/08/23(土) 15:20:10.86 ID:OM70Yo+9.net
- >>312
標準のGUIはいちいちスクリーンサイズから計算してくださいよってやつ
NGUIならスプライトみたいにベタ貼りできますよ
- 318 :名前は開発中のものです。:2014/08/23(土) 15:21:23.78 ID:MWXg6eWB.net
- >>316
原因分かりました! アセットをかうとわかりますよ
- 319 :名前は開発中のものです。:2014/08/23(土) 15:34:49.82 ID:gCLmSp1m.net
- >>305
有難うございます。
自分でもtransform.positionの意味は調べてわかっていたので
なんでコレなんだろう・・・・。
と思いながらも素直にそうやっていました。
前提条件が違えばそりゃそうですね。
アセットかったのでわかったよ。
- 320 :名前は開発中のものです。:2014/08/23(土) 15:50:30.92 ID:7Ja2HaqJ.net
- >>312
その辺のは別にやろうと思えばScreenクラスから情報取ってくれば
自由自在にできるんじゃないかとか。
毎フレームでなくても10フレ毎に解像度チェック関数動かして
保存してる解像度と異なれば大きさ、位置を調整してやるとか。
まぁiOS系とかだと別に初期化の時点でチェック、位置決定してやれば
それでいいんだろうけど。
- 321 :名前は開発中のものです。:2014/08/23(土) 15:54:46.18 ID:7Ja2HaqJ.net
- >>316
フレームを経過しないままそこで無限ループするんだから
当然じゃないか?
- 322 :名前は開発中のものです。:2014/08/23(土) 16:10:54.24 ID:F0mmo1TI.net
- コルーチン中の任意のタイミングでGUIボタンを呼び出したいんですが
どうやればいいですか?
別のスクリプトからOnGUI()を呼び出そうとしたのですが
できなくて困っています
- 323 :名前は開発中のものです。:2014/08/23(土) 16:14:04.33 ID:MWXg6eWB.net
- >>322
OnGUIはアセットをかえば簡単に出来るよ
- 324 :320:2014/08/23(土) 16:19:37.36 ID:F0mmo1TI.net
- すみません自己解決しました。
アセットもいりません
- 325 :307:2014/08/23(土) 16:25:40.00 ID:T2BBJqwd.net
- >>317
やりたいのはそれほど複雑なUIじゃないので、
配置はスクリーンサイズから計算して設計できるんだけど、
それをUnityのGameview上で確認できないもんかなと
フル解像度での見え方は、実機で確認するしかないんですかね?
- 326 :名前は開発中のものです。:2014/08/23(土) 18:21:04.73 ID:4AFhlQFQ.net
- >>321
ありがとうございます
continueだとそうですね・・
- 327 :名前は開発中のものです。:2014/08/23(土) 20:30:58.99 ID:7LFCfaJs.net
- NGUIで負荷の少ない連続ダメージ表示をするにはどうすればよいのでしょうか?
私の今までのやり方では呼び出したい敵キャラが持っている空のgameobjectの下にLabelが入っており
Startの中でFind処理をしたGetcomponentを指定して、テキストを入れているのですが
複数の場合オブジェクトプール形式にしても、呼び出す度にgetcomponentしなければならず、頻度が高いダメージ表示ではゲーム中に結構負荷がかかってしまう気がするのですが
このやり方はよい(効率的な)またはベターなやり方なのでしょうか?
- 328 :名前は開発中のものです。:2014/08/23(土) 21:36:05.08 ID:ZW3zMHof.net
- scriptじゃなくて普通のクラスをnewして使いたいんですが
どのようにすれば可能でしょうか、ご教授ください
↓こんなん
public class Person{
public Person(){
}
private int age;
public int Age{
get{
return this.age;
}
}
}
- 329 :名前は開発中のものです。:2014/08/23(土) 21:41:51.73 ID:Huj5ofTZ.net
- >>328
こういっちゃなんだが、すごい質問が来るな
ここで教えてもらっても、かえって苦労しそうな気がするんだが・・・
言語の本1〜2冊買えばここよりずっとマシな回答得られると思うよ
- 330 :名前は開発中のものです。:2014/08/23(土) 21:43:58.53 ID:Huj5ofTZ.net
- ・・・今動く、じゅげむじゅげむの呪文としてのコードを教えてもらっても
仕組みが分らないと後で苦労するよって話
- 331 :名前は開発中のものです。:2014/08/23(土) 21:51:23.26 ID:Huj5ofTZ.net
- using UnityEngine;
using System.Collections;
public class Test1 : MonoBehaviour
{
void Start ()
{
Person person = new Person ();
}
}
class Person
{
public Person ()
{
}
private int age;
public int Age {
get {
return this.age;
}
}
}
こういう形でも実装できるよ
総レス数 1007
310 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200