- 1 名前:名前は開発中のものです。 mailto:sage [2017/12/19(火) 09:35:55.55 ID:VZwsAqll.net]
- フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他 次スレは>>950以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。 ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) www24.atwiki.jp/unity2ch/ ●リンク ・Unity(日本公式サイト) unity3d.com/jp ・マニュアル docs.unity3d.com/ja/current/Manual/index.html ・チュートリアル unity3d.com/jp/learn/tutorials ・スクリプトリファレンス docs.unity3d.com/ja/current/ScriptReference/index.html ・FAQ unity3d.com/jp/unity/faq ・MSDN msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。 前スレ 【3Dゲームエンジン】Unity質問スレッド32 mevius.5ch.net/test/read.cgi/gamedev/1509307535/
- 173 名前:名前は開発中のものです。 mailto:sage [2017/12/27(水) 22:33:19.52 ID:UZCkhUUp.net]
- >>165
シーン遷移時は、前のシーンのオブジェクトを破棄して新たなシーンのオブジェクトを構築する処理が走る この処理が終わらないと新しいシーンのオブジェクトはFindでは見つからない よって、新たなシーンのオブジェクトを見つけたければSceneManager.sceneLoadedデリゲートを使ってシーンのロードが完了してから処理を行う必要がある ちなみにSceneManager.sceneLoadedはロードされたシーンのオブジェクトのAwakeが完了し、Startが呼ばれる前に呼ばれる事に注意 またこのデリゲートはどのシーンがロードされても呼ばれるから処理内でシーン毎に振り分けるかハンドラをつけ外しするなどの対処が必要
- 174 名前:名無し@キムチ [2017/12/27(水) 22:59:24.99 ID:oeXBuupd.net]
- >>164
遷移後のobjBをFind →失敗 当方の経験ではFindは、そのオブジェクトにアタッチされているスクリプトからでないと、失敗したり成功したりその時々によってさまざまだな。
- 175 名前:名前は開発中のものです。 mailto:sage [2017/12/27(水) 23:23:24.84 ID:Y6rKayv0.net]
- なんだやっぱりキムチか
- 176 名前:名前は開発中のものです。 mailto:sage [2017/12/27(水) 23:29:25.63 ID:9tGAk59e.net]
- プログラムが成功したり失敗したりなんて挙動するわけない
成功するのも失敗するのも理由がある 理由を理解できていないのにプログラムのせいにするプログラマー
- 177 名前:名前は開発中のものです。 mailto:sage [2017/12/27(水) 23:56:23.72 ID:2+M/n1Lm.net]
- >遷移後のシーンに配置されているボタンから、objAのメソッド@を呼び出す
本当に呼び出せている? Find以前の問題だったりして・・・
- 178 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 00:13:29.64 ID:mH5YII84.net]
- ボタンからの入力を受けていないだけとかはないですか?
UIから、その該当スクリプトへのコールがかかっていないとか? 入力をInputにして、 if?(Input.GetKeyDown?(KeyCode.Space))?{ Debug.Log("Input OK"); GameObject A = GameObject.Find("objA"); Debug.Log(A); } を追加して、 スクリプトが機能しているかどうか、 オブジェクトを取得できているかどうかを確認してみてください
- 179 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 00:18:44.79 ID:mH5YII84.net]
- すみません、objAからobjBの方を見たいんですね
objAのスクリプトのUpdate()内に、 if (Input.GetKeyDown (KeyCode.Space)) { Debug.Log("Input OK"); GameObject B = GameObject.Find("objB"); Debug.Log(B); } を追加して、 スクリプトAが機能しているかどうか、 オブジェクトBを取得できているかどうかを確認してみてください ボタンからの呼び出しが届いていないだけであれば、 上記でオブジェクトを取得できるはずですが・・・ シーン2では、 objA:DontDestroyによって、シーン1から持ち越し objB ・・・が、Hierarchy上に同時に並んでいるわけですものね?
- 180 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 00:34:38.37 ID:mH5YII84.net]
- 各オブジェクトのそれぞれのスクリプトで行っていることが良く分からないのですが、
Scene1 objA-A.cs:DontDestory ボタン→LoadScene("Scene1") objC-C.cs:DontDestory ↓ Scene2 objA-A.cs:DontDestory(Scene1から) メソッド@→A = Find("objB") →NG objC-C.cs:DontDestory(Scene1から) Aのメソッド@→A = Find("objB") →OK objB-B.cs ボタン→Aのメソッド@→A = Find("objB") →OK こういうことなのでしょうか?? A = Find("objB")は、 GameObject A = GameObject.Find("objB");のことです メソッド@を呼ぶタイミングはどうやって遷移後に指定しているのでしょうか? まさか、LoadScene("Scene1")と同じフレーム内で呼んでいないですよね??
- 181 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 00:51:12.79 ID:fQL7hUYb.net]
- >>169
レス遅れてすみません。 ありがとうございます。 とても参考になり、わかりやすかったです。 結果として、やったことは SceneManager.LoadSceneの直後にSceneManager.sceneLoadedを行って そのデリゲート処理完了後にそれぞれのテストメソッドを呼び出して参照したりしたところ 問題なく参照できました。 >>161にはレスしませんでしたが、当たりだった感じです。 >>170 なるほど。。。他の方々のレスを見る感じ、テスト環境でやっていたのかもしれないので もしかするとオブジェクト等の量とかでかわるんですかね? >>173 そこは上のレスを書いた時点で確認できていました debug.log等での確認なので精度はわかりませんが
- 182 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 00:56:34.32 ID:fQL7hUYb.net]
- >>174-176
Scene1 objA-A.cs:DontDestory ボタン→ *A.cs内の LoadScene("Scene1") 呼び出し objC-C.cs:DontDestory * +変数1 ↓ Scene2 objA-A.cs:DontDestory(Scene1から) メソッド@→A = Find("objB") →NG objC-C.cs:DontDestory(Scene1から) Aのメソッド@→A = Find("objB") →OK * Aのメソッド@→A = Find("objC") →OK です objB-B.cs ボタン→Aのメソッド@→A = Find("objB") →OK A.Csの中の処理流れは { LoadScene2; gameobject.find(Scene2のobjB) } でBが見つからない ということでした >メソッド@を呼ぶタイミングはどうやって遷移後に指定しているのでしょうか? まさか、LoadScene("Scene1")と同じフレーム内で呼んでいないですよね?? 恐らくそういうことだったんだと思います
- 183 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 01:23:13.78 ID:GhM3Lpso.net]
- デバッガ使えば5分で分かった事を22時間も掛けて
大した効率だよな
- 184 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 01:43:55.44 ID:mH5YII84.net]
- 以前、物理演算で、どういう処理だったか忘れたけど、
変数を物理演算に設定した直後に、 同じフレーム内でデバッグログに物理演算結果を出力しようとしたら、 変数が設定された結果が出せなくて、 Invokeで1フレーム後にデバッグログを呼び出したら、出力できたことがあるので、 一度フレームを走らせないといけないポイントで処理を連続してしまうのは、 結構ピットホールになりやすいかもしれない
- 185 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 02:14:32.76 ID:mH5YII84.net]
- velocityの変更、positionの変更は、同じフレーム内で取得しても変更が反映されるけど、
例えばAddForceでは、たとえ1フレームで加速するForceMode.Impulseでも、 同じフレーム内ではまだvelocityは速度変更されておらず、 次のフレームでvelocityの変更が反映されるみたい でも、1フレームで移動を行うMovePositionは、 同じフレーム内でpositionの変更が反映されているという・・・
- 186 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 02:20:34.36 ID:aEDu9yFW.net]
- 全然関係ねえよ
オブジェクトの生成と破壊は1フレーム掛かるから後処理は1フレーム待てと言われただろ シーンの呼び出しも同じって>169に言われてんだろ
- 187 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 02:49:46.90 ID:mH5YII84.net]
- Invokeに1フレームかかるのか、1フレーム内で行う処理の量の問題なのか、
PCの性能の違いなのか、Unityのバージョンの違いなのかは不明だけど、 Rigidbody rb; void Start() { rb = GetComponent<Rigidbody>(); rb.angularVelocity = new Vector3(0, 0, 180 * Mathf.Deg2Rad); Invoke ("Log", 1); //Invoke("Log", 1 - Time.fixedDeltaTime); } void Log() { rb.angularVelocity = Vector3.zero; Debug.Log (rb.rotation); Debug.Log(rb.rotation.eulerAngles.z); } 本来、Z軸回転に180度/秒を入れて1秒間回転させて止めているわけだから、 Z軸の回転角は180が返るはずだけど、183.6という結果になってしまいます Invoke("A", 1 - Time.fixedDeltaTime)で1フレームは早く呼ぶと、180が返るから、 おそらくInvokeで呼ぶ場合は、1フレーム遅れるんでしょうね・・・
- 188 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 02:51:19.62 ID:ZI2vMH5M.net]
- 外様が言うのは何だが
コードも貼られて実に良スレだな
- 189 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 03:22:50.01 ID:mH5YII84.net]
- ごめんなさい、原因が分かったよ
Start()から、Log()を呼んでいるからでした・・・ Start()が終了するのに1フレームかかるみたいですね Rigidbody rb; void Start() { rb = GetComponent<Rigidbody>(); Start2() } void Start2() { rb.angularVelocity = new Vector3(0, 0, 180 * Mathf.Deg2Rad); Invoke ("Log", 1); } void Log() { rb.angularVelocity = Vector3.zero; Debug.Log (rb.rotation); Debug.Log(rb.rotation.eulerAngles.z); } StartからStart2を呼んで、Start2でangularVelocityを設定すれば、 Start2()からLog()を呼ぶ場合は、1秒指定のInvokeで、ぴったり180でした
- 190 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 03:24:48.63 ID:yHTFG4+0.net]
- 物理はFixedUpdateのタイムスライスで動いてるから、
Update系とは時間の流れ違うだろ
- 191 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 04:43:29.76 ID:NrJHfHro.net]
- >>185
何の確認もせずに適当な思い込みで妄想しても 的外れなだけじゃないキムチ君w 毎回そんなアホな事をやってるから迷走すんだよ だったらStartとStart2に Debug.Log(Time.frameCount); で実実行時のフレームカウント出してみなよ 両方とも1って出るから
- 192 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 07:27:31.37 ID:yfK1iHQW.net]
- 161最強!w
- 193 名前:名前は開発中のものです。 mailto:
[]
- [ここ壊れてます]
- 194 名前: mailto:2017/12/28(木) 09:26:13.89 ID:fukyqugk.net [ 初心者です
マテリアル作って保存したらファイル名が勝手に.matから.MATに変わってそのせいで警告が出てる??みたい パソコンのせいなんでしょうか 解決方法分かりませんか? ] - [ここ壊れてます]
- 195 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 09:35:07.71 ID:PGevnyVZ.net]
- 警告文そのものを貼ってください
- 196 名前:名前は開発中のものです。 [2017/12/28(木) 09:53:48.72 ID:fukyqugk.net]
- 警告で
The GUID for assets/アセット名.mat is already in ues by assets/アセット名.MAT. Assigning a new guid. エラーで Refresh case sensitivity failure. Assets:Assets/アセット名.mat ; Metafile:Assets/アセット名.mat.meta です
- 197 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 10:09:16.56 ID:ZI2vMH5M.net]
- どーせテクスチャをエクスプローラーからコピペして置き換えしたりしてんだろ
- 198 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 10:24:27.92 ID:o+JGejkD.net]
- >>189
君みたいな雑魚にUnityは使いこなせません 10年webで下積みしてから出直してきなさい
- 199 名前:名前は開発中のものです。 [2017/12/28(木) 10:45:38.68 ID:fukyqugk.net]
- >>192
いえ、普通にUnityエディタ内でmaterialを作成してます で真っ白なまま保存しても.matで保存されるんですが少しでも色を変えると保存した時に拡張子が.MATに変わってしまうんです
- 200 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 11:13:08.50 ID:ghF3Rjv1.net]
- >>194
ファイル消したりしてるでしょ 元ファイル消したのにmetaファイル消してないから名前が使えない だから別の名前使うね、ってなってる 生成も削除も移動も全てuntiy上で行ってください
- 201 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 11:16:47.13 ID:ghF3Rjv1.net]
- てか警告分の内容は理解してる?
中学英語の単語しか無いぞ 英語だからって毛嫌いせず読もうとしてみるの大事 だんだん慣れてくるから
- 202 名前:名前は開発中のものです。 [2017/12/28(木) 12:01:44.31 ID:fukyqugk.net]
- >>195
ありがとうございます、消してしまった気がします… こうなった場合の対処法ってどうすれば良いんですか?調べたんですけど「やらないように注意」みたいにしか書いてなくて… 警告文は1回Google翻訳に突っ込んだ時にルー語で翻訳されてキレそうになりましたw ちゃんと調べてある程度意味はわかりました
- 203 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 12:18:12.10 ID:ghF3Rjv1.net]
- >>197
基本的には不要なmetaファイルを消せばいい metaファイルの中を理解することは大変だけどmetaファイルの存在意義を理解することはそこまで難しくはないと思う ググればmetaファイルとはなんぞやって記事いっぱいあるからゆっくり読んでみればいい 全部が理解できなくてもいいから色んな記事を読むといい その過程で色んな知識がつくはず それを繰り返してればそのうち色んなことに対処できるようになる
- 204 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 12:24:20.51 ID:ghF3Rjv1.net]
- >>197
あと警告やエラー文は基本翻訳ソフトに突っ込まないほうがいい 単語の意味を調べる程度にしときな プログラム上で使われる意味合いと英文としての意味合いが異なって余計に混乱することになることが多いと思う GUIDみたいな略語なんかは翻訳仕様がないしね むしろ警告文をそのままググるほうが同じ問題で引っかかった人が解決法とか書いてくれてたりすることもあるからそういうふうに調べたほうがいいよ
- 205 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 12:36:22.53 ID:epGNZdyE.net]
- >>185
正確に言うと1フレーム内なんだけど、イベントが呼び出される順番の問題では? Awake Start FixedUpdate Update LastUpdate OnRenderImage OnGUI OnDestroy 同じフレーム内でも、Updateの前にFixedUpdateが来るから、 FixedUpdateの処理が1フレーム分先
- 206 名前:の内容になっているんだと思う []
- [ここ壊れてます]
- 207 名前:名前は開発中のものです。 [2017/12/28(木) 12:43:17.39 ID:fukyqugk.net]
- >>198
>>199 わかりました、また調べてみます 色々とご教示ありがとうございました
- 208 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 12:44:32.49 ID:epGNZdyE.net]
- Start:
Debug.Log Invoke A 0秒 Invoke B 0秒 FixedUpdate: Debug.Log Update: Debug.Log A: Debug.Log B: Debug.Log Invoke AA 0秒 AA: Debug.Log Time.frameCountをDebug.Logすると、全て1になるね (FixedUpdateとUpdateは初回のみDebug.Log)
- 209 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 12:48:38.22 ID:epGNZdyE.net]
- 実際にやってみると、Debug.Logされる順番は、
@Start AFixedUpdate BA CB DUpdate EAA の順になるので、 @Satrt→BAの間には、FixedUpdateが入っているので、 その間に物理演算の結果が更新されますが、 CB→EAAの間には、FixedUpdateが入らないので、 その間に物理演算の結果は更新されません
- 210 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 12:57:15.87 ID:U/moIC9W.net]
- ID:ghF3Rjv1の優しさに勃起した
- 211 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 13:14:29.51 ID:ghF3Rjv1.net]
- ホモはお帰りください
- 212 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 13:27:13.50 ID:bdqePp8Y.net]
- >>203
アセットを買うのがいいですよ
- 213 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 15:02:55.90 ID:YB1B6aLH.net]
- 質問者が全部キムチなのが問題だ
- 214 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 15:24:10.83 ID:tnUbOHhI.net]
- 何もない所で誰も引っ掛からない孔明の罠に引っ掛かって
大騒ぎするのがキムチ
- 215 名前:名無し@キムチ [2017/12/28(木) 19:12:09.06 ID:26YsjXJQ.net]
- >>177
他のオブジェクトのアクティブのtrueはfalse明らかにオブジェクトの量で変わる。 オブジェクトの量を増やすと、それまでtrueはfalseがちゃんと動いていたものが、動かなくなる。 その行の削除するとまたちゃんと動き出すことから、それは明らか。 それを回避するには、オブジェクトごとにスクリプトをつけてそれに書けばアクティブのtrueはfalseは確実に動く。
- 216 名前:名無し@キムチ [2017/12/28(木) 20:33:48.36 ID:26YsjXJQ.net]
- 最近わかったんだが、Unityでは基本あるオブジェクトにつけたスクリプトから他のオブジェクトを動かしてはいけないんですね。
あくまでもそのオブジェクトにだけ関するスクリプトであるということ。 MonoBehaviorの「Mono」とはそういう意味なんですね。
- 217 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 20:57:02.16 ID:bdqePp8Y.net]
- 何いってんのこいつw
- 218 名前:名前は開発中のものです。 [2017/12/28(木) 21:42:51.63 ID:mWenZKXP.net]
- NSObjectのNSはNextStepの略だしな
- 219 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 21:51:39.14 ID:VBJfLBcj.net]
- NSって。。風俗かよwww
- 220 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 22:22:34.63 ID:epGNZdyE.net]
- >>210
物理演算をつけたオブジェクトは、transform命令では動かさない方が良い 同様に、Rigidbody.positionやRigidbody.rotationも極力直接いじらないほうが良い (なるべく、初期値を設定するだけにしておく) 物理演算をつけたオブジェクトは、原則velocity設定や、 AddForceかAddTorqueで動かさないと、演算に干渉して挙動が不安定になる
- 221 名前:名前は開発中のものです。 mailto:sage [2017/12/28(木) 23:00:56.25 ID:mH5YII84.net]
- >>187 >>200
全部1フレーム内での出来事だったのか >>186 >>200 呼び出される順序の問題で、物理演算をまたいでしまうと、 その時点で1フレーム分の内容のズレが出ちゃうのが真相か・・・
- 222 名前:名前は開発中のものです。 mailto:sage [2017/12/29(金) 09:19:21.34 ID:K0u5BC7r.net]
- >>214
それはワープになるからな MovePosition使えば大丈夫だよ
- 223 名前:名前は開発中のものです。 mailto:sage [2017/12/29(金) 23:42:13.44 ID:qixlPtWp.net]
- 初心者です。
2Dでジャンプアクションゲームを物理演算で製作中です。 ようやく左右への移動ができるようになったところです。 (Input.GetAxisをvelocityに代入しています) ジャンプの際に、お聞きしたい事があるのですが、 まず地面に接している判定をどうするのか、 ジャンプはvelocity変更でよいのか、AddForceの方がよいのか、 ボタンを押している時間に応じてジャンプを高くしたい (無制限に高くではなく、ジャンプ力には上限を設けたい) などを詳しく解説してあるサイトとかありますでしょうか? あるいは、ジャンプ動作のスクリプトに、定石・セオリーみたいのはあるのでしょうか?
- 224 名前:名前は開発中のものです。 [2017/12/30(土) 00:35:07.56 ID:5n68sL0m.net]
- AddForceの方がいいよ、単純にジャンプだけだったら変わんないかもしれないけど他の動作と重なったときに融通がきかなくなる
設置してるかどうかはコリジョンを見れば良いんだよ ジャンプ系の処理は定石化してるから、Youtubeでしっかり頭に叩き込んだほうが良いよ 数値の上限については、ちゃんとC#らしい書き方ができるといいね
- 225 名前:名前は開発中のものです。 mailto:sage [2017/12/30(土) 09:26:09.43 ID:sj8HSsvd.net]
- UNITYの定石としては、アセットを買うことですね
- 226 名前:名前は開発中のものです。 mailto:sage [2017/12/30(土) 14:20:42.17 ID:LpYIXbLi.net]
- "物理演算"でやるならVelocityは基本使っちゃだめよ
物理演算を無視した移動だから見た目が物理っぽくなくなるよ キャラの操作制御はInput.GetAxisでもいいがCharacter Controllerを使えばisGroundというパラメーターで地面との接点判定できるよ
- 227 名前:名前は開発中のものです。 mailto:sage [2017/12/30(土) 16:10:37.30 ID:DH75+pHx.net]
- >>217
初心者向けに 2D platformerというジャンプアクションゲームのアセット(無料)がある https://www.assetstore.unity3d.com/jp/#!/content/11228 あとはggれば解説してるとこがあったはず
- 228 名前:217です mailto:sage [2017/12/30(土) 23:14:59.07 ID:6xEuTupH.net]
- この時間しかレスできず、大変すみません。
皆さん、いろいろアドバイス下さり、ありがとうございます。 >>218さん >>220さん velocityは直接変えない方がよいんですね。 AddForceでImpuseモードで変更することにしました。 >>219さん >>221さん アセットは魅力的に思っていましたが、導入方法が分からなかったのと、 基本有料と思って、二の足を踏んでいました。 無料のジャンプアセットあるのですね。ためになりました。 >>220さん Character Controllerは3D専用の機能かと思って触っていませんでした。 これから勉強します。
- 229 名前:名前は開発中のものです。 mailto:sage [2017/12/31(日) 11:58:25.06 ID:YEuDj3bX.net]
- 物理演算を使って、物理法則に則ったゲームを作成するのか、
物理演算を使って、既存型のゲームを作成するのか、 (コライダーは利用するが、動きは非物理) 物理演算を使わずに、既存型のゲームを作成するのか (旧来のゲームシステム)
- 230 名前:名前は開発中のものです。 mailto:sage [2017/12/31(日) 12:40:49.59 ID:YEuDj3bX.net]
- positionの直接変更は、コライダーへの衝突計算が乱れる危険性あり
MovePositionによるposition変更は、velocity変更に基づいているので、 比較的安全にコライダーとの衝突計算がなされる velocity変更を行わずに、全てAddForceで行った方が、 より自然な物理演算になるけど、velocityを0にするのが難しくなる AddForceでvelocityを0にしようと逆方向に力を与え続けると、 逆向きの加速度がついてしまうので、基本的にはDragで減速せざるを得ない
- 231 名前:名前は開発中のものです。 mailto:sage [2017/12/31(日) 13:07:55.13 ID:YEuDj3bX.net]
- 2Dで地面との接触判定を行うのであれば、
・IsTouching,IsTouchingLayers 他のコライダーやレイヤーとの接触を検出する方法 (全方向からの接触を検出してしまう) ・Physics2D.OverlapArea,Physics2D.OverlapBox 配置した矩形が接触したコライダーを検出する方法 (OverlapAreaとOverlapBoxは矩形の設定方法が異なる) ・Physics2D.Linecast 配置した線分が接触したコライダーを検出する方法 (RayCastとは異なり、直線ではなく長さを持つ線分) ・Physics2D.BoxCast,Physics2D.RayCast 放射した直線が接触したコライダーを検出する方法 (BoxCastはRayCastの先端が矩形) IsTouching系は、Collider2D.(自分との判定)とPhysics2D.(2者間の判定)がある Cast系は投射方向を指定できるが、投射前に接触していると検出されないのが難点 LineCastやRayCastは線のため太さがなく、幅を持つコライダーでは複数本が必要 OverlapBoxと違って、Physics.CheckBoxは、2Dでは使えない
- 232 名前:名前は開発中のものです。 [2017/12/31(日) 18:15:19.74 ID:/rN76OKL.net]
- 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』 WQFIUEMH6C
- 233 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 00:44:27.66 ID:j7kcIBAU.net]
- 斜面に球を置いたとき、コロコロと転がっていくか、転がらずに滑っていくかは、摩擦設定で変わるのですか?
- 234 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 01:03:03.11 ID:6abiTkqK.net]
- 変わるよ
ただし物理計算のタイムアウトも関係してくる 一定時間経過するとタイムアウトになり何か刺激がくるまで動かなくなる
- 235 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 12:16:58.00 ID:ljD1K3gw.net]
- IsTouchingLayersをつけたbox型のコライダーを足元に付けておけば、
足元だけで地面のレイヤーとの接地判定できるよ キャラクタ全体をIsTouchingにしちゃうと、 横のブロックに触れただけでも接地に判定されちゃうから・・・ (逆に、壁登りや三角飛びするなら、これでもよいけど)
- 236 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 12:30:50.04 ID:ljD1K3gw.net]
- >>225
LineCastは判定線の長さが限られているから、直下だけの判定できるけど、 RayCastだと判定線の長さが伸びるから、下方向(距離無関係)の判定になっちゃうよ >>224 1フレームで見れば、velocityの直接変更も、AddForce(Impulse)も同じだけど、 velocityの直接変更は、ボタン押下中、毎フレーム呼び出されても同じ値が代入されるのに対して、 AddForce(Impulse)は、ボタン押下中、毎フレーム呼び出されて加算されてどんどん加速するからね AddForceで、gravityと同じ値で逆方向に加速すると、重力が相殺されて、速度が保存されるよ
- 237 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 12:32:16.63 ID:PNv1Z/iK.net]
- なぜ皆さんはこんな無駄なことに時間を費やすのか?
アセットを買えばすぐに解決するのに
- 238 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 15:25:49.26 ID:ljD1K3gw.net]
- >>217
ちなみに、自分の場合は、2Dでジャンプ機能を実装する際は、 Startでint t = 100,float v = 1.0fをセット Updateでボタン入力と接地を監視 @入力あり t >= 0なら、Jump()へ飛んで、その後にt = t -1 A入力なし 接地ありなら、t = 100へ 接地なしなら、t = 0へ Jump() t = 100なら、AddForce(mass * v * Vector2.up, ForceMode2D.Impulse) そうでない場合は、AddForce (mass * (t/100) * (- Physics2D.gravity)) 最初のフレームで上向き初速v = 1.0をつけておき、 次のフレームからは重力加速度の相殺を線形的に減じていき、 t = 100フレームで重力加速度の相殺が消える仕組み ボタン入力がない場合は、接地時はt = 100に戻して、 非接地時はt = 0をセットして連続での再ジャンプを防止
- 239 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 15:36:55.88 ID:ljD1K3gw.net]
- 接地判定は、足元に別コライダーを接地しておいて、IsTouchingLayersでも良いけど、
Startで、public LayerMask layerを宣言して、layerに地面のレイヤーを指定しておき、 キャラクタの足元に、縦厚みd×横幅x-dの判定枠を作って、 V2center = position - (キャラの縦サイズy/2) * Vector2.up V2size = new Vecto2(キャラの横サイズx - d, d) if (Physics2D.OverlapBox(V2center, V2size, 0, layer) == true)で layer = 地面のレイヤーとの接地判定すると、コライダーを追加する必要はなくなるよ
- 240 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 18:00:56.88 ID:j7kcIBAU.net]
- >>228
変わるんですね unityは、静止摩擦係数、動摩擦係数とか、滑り摩擦、転がり摩擦とかも設定できるんですか?
- 241 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 18:03:03.31 ID:j7kcIBAU.net]
- Debug.DrawLineだと、Lineしか引けないんですけど、
Boxを描画したり、Circleを描画したりしたいんですけど、どうすれば良いんでしょうか?
- 242 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 18:45:59.90 ID:6abiTkqK.net]
- 静止摩擦係数、動摩擦係数だけです
- 243 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 20:01:42.78 ID:j7kcIBAU.net]
- >>236
摩擦係数は2種類設定できるんですね!
- 244 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 20:58:09.99 ID:Ep+lOIal.net]
- >>235
cube作るなりplane作るなりすればいいんじゃないの?
- 245 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 21:03:34.71 ID:yWvNMSX7.net]
- アセットガイジ死ねや
- 246 名前:名無し@キムチ [2018/01/01(月) 21:18:47.92 ID:SQPXIuv2.net]
- >>238
cubeやplaneだと立体的になっちゃうから、 あくまでBoxを描画したり、Circleを描画したりして、テキストを補足する説明図っぽくしたいんじゃないかと忖度するが・・・w ほら、数学の説明でよくあるやつ。>>235はああいう感じにしたいのではなかろうか? Circleは難しいけど、まずcubeやplaneをつくって、 そのぴったり表面にシリンダーをすごく細くラインみたくしたものを置いて子オブジェクトにする。 次に3Dテキストを置いて子オブジェクトにする。 ラインとテキストをレイアウトしたら、cubeやplaneの面をカメラにぴったり向けてカメラの子オブジェクトにする。 最後にcubeやplaneを透明にすれば、カメラをどこに向けてもついてくる数学っぽい説明の出来上がりw
- 247 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 21:57:52.53 ID:j7kcIBAU.net]
- >>240の言うように、あくまで2Dでの画面への描画を考えてました
もともとは、Physics2D.OverlapCircleとかPhysics2D.OverlapBoxの判定枠をシーンビューに描画したかったのでした Physics2D.LineCastの判定線はDebug.DrawLineで描画できたのですが・・・・・・
- 248 名前:名前は開発中のものです。 mailto:sage [2018/01/01(月) 21:59:17.32 ID:j7kcIBAU.net]
- >>240
3Dオブジェクトで、擬似UIみたいにできるんですね! とても勉強になりました
- 249 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 00:14:05.59 ID:D2TESPw/.net]
- 回転で不可解な挙動と思ったら、角速度は上限設定あるのね
3Dオブジェクトは角速度の上限が7みたい どおりで、回転速度があがらないわけだww 2Dオブジェクトも角速度の上限あるんかな??
- 250 名前:名前は開発中のものです。 [2018/01/02(火) 07:20:03.89 ID:ItKV58jV.net]
- Unityでゲーム制作を始めようとしましたが、
2DのScene画面を3Dに切り替えようとすると、 高い確率でフリーズしてしまいます。スペック不足なのでしょうか。 スペックは macmini 2.5GHz intel core i5 16GB 1600MHz DDR3 Intel HD Graphics 4000 1024MB OS X 10.9.5 ですが、しょぼすぎますか
- 251 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 07:52:04.57 ID:Q6Rb/Cgl.net]
- 将来バーチャル配信したいと思います
とりあえずマウスの1080tiのpc全部で45万買いました hmdはviveを買いたいです unityもしくはアンリアル4のプログラミング学びたいです
- 252 名前:名前は開発中のものです。 [2018/01/02(火) 08:10:05.14 ID:XBTw6bXv.net]
- Unityちゃんを動かすとデフォルトのアニメーションは髪も服も揺れるけど
他のアニメーション適用すると髪や服が動かなくなります。動かすにはどうすれば?
- 253 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 08:30:25.63 ID:XBTw6bXv.net]
- SpringBoneというスクリプトで動かせるっていうページ見てたら
Unityちゃんのアセットについてくると書いてたけど
- 254 名前:そんなスクリプト見当たらないよ…?
https://www.assetstore.unity3d.com/jp/#!/content/18705 [] - [ここ壊れてます]
- 255 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 11:10:29.94 ID:2dYW5Ky7.net]
- >>244
macは知らね
- 256 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 11:11:46.45 ID:2dYW5Ky7.net]
- >>243
2Dだと、Physics2D.maxRotationSpeedが最大角速度じゃね? たぶん、デフォルト360
- 257 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 11:12:34.87 ID:2dYW5Ky7.net]
- >>245
宣言してないで、はよ作り始めや!
- 258 名前:名前は開発中のものです。 [2018/01/02(火) 12:46:08.99 ID:3zm85S2+.net]
- >>245
バイブ10万グラボ7万で、あと28万何に使ってん
- 259 名前:名前は開発中のものです。 [2018/01/02(火) 12:46:49.68 ID:3zm85S2+.net]
- tiか。今いくら?
- 260 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 13:14:00.87 ID:PtcHezIx.net]
- >>244
グラボ乗ってないのが原因 GTX1060買いなさい
- 261 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 13:17:48.18 ID:PtcHezIx.net]
- >>245
これで税抜き33万なのがG-tune ま、バカが買うものだわな ■OS : Windows 10 Home 64ビット ■CPU : インテルR Core? i7-7820X プロセッサー (8コア/3.60GHz/TB時最大4.30GHz/11MB スマートキャッシュ/HT対応) ■グラフィックス : GeForceR GTX 1080 Ti (11GB) ■メモリ : 32GB PC4-19200 (8GB×4/ クアッドチャネル) ■SSD : 960GB Serial ATAIII ■ハードディスク : 3TB Serial ATAIII 7200rpm ■チップセット : インテルR X299 チップセット ■光学ドライブ : DVDスーパーマルチドライブ ■電源 : 700W 【80PLUSR BRONZE】
- 262 名前:名前は開発中のものです。 [2018/01/02(火) 13:56:37.33 ID:1mcVKq6f.net]
- >>254
そのスペックが必要な人にとってはバカな買い物じゃないだろ。バカ?
- 263 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 14:04:05.12 ID:PtcHezIx.net]
- >>255
工賃にどれだけ取られてんだよ情弱
- 264 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 14:20:01.09 ID:PRne7TuP.net]
- arkで最安値でほぼ同じ構成でカートにぶち込むと
税込合計:331,800円 最近のはバラ買いと大差ないよ
- 265 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 14:25:12.57 ID:PRne7TuP.net]
- あ、ショップBTOの値段じゃなくてマウス45万か
ご愁傷さまですな
- 266 名前:名前は開発中のものです。 [2018/01/02(火) 14:25:35.15 ID:3zm85S2+.net]
- >>256
>>257見て何か言いたいことは?ねぇ今どんな気持ち?ねぇ今どんな気持ち?
- 267 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 14:53:04.19 ID:PtcHezIx.net]
- >>259
馬鹿? リテール品だけで組んだらそうなるのは当たり前だろ バルクとリテールの差額で利益出してるんだぞ
- 268 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 15:14:05.39 ID:RMxWccP5.net]
- 本人が納得して払ってるんだ、どんだけマウントしたいんだw
- 269 名前:名前は開発中のものです。 [2018/01/02(火) 15:15:55.22 ID:3zm85S2+.net]
- >>260
じゃあお前はバルクなり何なり好きに使ってもっと安くできんのかよw マジでアホかこいつwww
- 270 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 15:21:02.50 ID:FsSpMxSN.net]
- 自作だとパーツ単位で交換出来て、前に使っていたパーツが使い回せる分が安いのであって、
一式揃える時はOSの事まで考えると下手したら既製品より高くなるのは普通だぞ。
- 271 名前:名前は開発中のものです。 mailto:sage [2018/01/02(火) 15:25:29.39 ID:tPMEeqYr.net]
- いやまてw マウスの45万の構成って1080 TiのSLIじゃねーかwww
>254が1グレード下と間違えてんだな
- 272 名前:名前は開発中のものです。 [2018/01/02(火) 15:35:04.34 ID:3zm85S2+.net]
- >>263
昔は自作の方が安く出来たけどね。 あれはもうなん年前のことなんだろうか… 自分で使うマシンはちまちま部品入れ替えとかして結局自作の
- 273 名前:もの使ってるけど。 []
- [ここ壊れてます]
|

|