[過去ログ] 【3Dゲームエンジン】Unity質問スレッド33 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
196: 2017/12/28(木)11:16 ID:ghF3Rjv1(2/5) AAS
てか警告分の内容は理解してる?
中学英語の単語しか無いぞ
英語だからって毛嫌いせず読もうとしてみるの大事
だんだん慣れてくるから
197
(2): 2017/12/28(木)12:01 ID:fukyqugk(4/5) AAS
>>195
ありがとうございます、消してしまった気がします…
こうなった場合の対処法ってどうすれば良いんですか?調べたんですけど「やらないように注意」みたいにしか書いてなくて…

警告文は1回Google翻訳に突っ込んだ時にルー語で翻訳されてキレそうになりましたw
ちゃんと調べてある程度意味はわかりました
198
(1): 2017/12/28(木)12:18 ID:ghF3Rjv1(3/5) AAS
>>197
基本的には不要なmetaファイルを消せばいい

metaファイルの中を理解することは大変だけどmetaファイルの存在意義を理解することはそこまで難しくはないと思う
ググればmetaファイルとはなんぞやって記事いっぱいあるからゆっくり読んでみればいい

全部が理解できなくてもいいから色んな記事を読むといい
その過程で色んな知識がつくはず
それを繰り返してればそのうち色んなことに対処できるようになる
199
(1): 2017/12/28(木)12:24 ID:ghF3Rjv1(4/5) AAS
>>197
あと警告やエラー文は基本翻訳ソフトに突っ込まないほうがいい
単語の意味を調べる程度にしときな
プログラム上で使われる意味合いと英文としての意味合いが異なって余計に混乱することになることが多いと思う
GUIDみたいな略語なんかは翻訳仕様がないしね

むしろ警告文をそのままググるほうが同じ問題で引っかかった人が解決法とか書いてくれてたりすることもあるからそういうふうに調べたほうがいいよ
200
(1): 2017/12/28(木)12:36 ID:epGNZdyE(1/4) AAS
>>185

正確に言うと1フレーム内なんだけど、イベントが呼び出される順番の問題では?

Awake
Start
FixedUpdate
Update
LastUpdate
OnRenderImage
OnGUI
OnDestroy

同じフレーム内でも、Updateの前にFixedUpdateが来るから、
FixedUpdateの処理が1フレーム分先の内容になっているんだと思う
201: 2017/12/28(木)12:43 ID:fukyqugk(5/5) AAS
>>198
>>199
わかりました、また調べてみます
色々とご教示ありがとうございました
202: 2017/12/28(木)12:44 ID:epGNZdyE(2/4) AAS
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)
203
(1): 2017/12/28(木)12:48 ID:epGNZdyE(3/4) AAS
実際にやってみると、Debug.Logされる順番は、
?Start
?FixedUpdate
?A
?B
?Update
?AA
の順になるので、

?Satrt→?Aの間には、FixedUpdateが入っているので、
その間に物理演算の結果が更新されますが、

?B→?AAの間には、FixedUpdateが入らないので、
その間に物理演算の結果は更新されません
204: 2017/12/28(木)12:57 ID:U/moIC9W(1) AAS
ID:ghF3Rjv1の優しさに勃起した
205: 2017/12/28(木)13:14 ID:ghF3Rjv1(5/5) AAS
ホモはお帰りください
206: 2017/12/28(木)13:27 ID:bdqePp8Y(1/2) AAS
>>203
アセットを買うのがいいですよ
207: 2017/12/28(木)15:02 ID:YB1B6aLH(1) AAS
質問者が全部キムチなのが問題だ
208: 2017/12/28(木)15:24 ID:tnUbOHhI(1) AAS
何もない所で誰も引っ掛からない孔明の罠に引っ掛かって
大騒ぎするのがキムチ
209: 名無し@キムチ 2017/12/28(木)19:12 ID:26YsjXJQ(1/2) AAS
>>177
他のオブジェクトのアクティブのtrueはfalse明らかにオブジェクトの量で変わる。
オブジェクトの量を増やすと、それまでtrueはfalseがちゃんと動いていたものが、動かなくなる。
その行の削除するとまたちゃんと動き出すことから、それは明らか。

それを回避するには、オブジェクトごとにスクリプトをつけてそれに書けばアクティブのtrueはfalseは確実に動く。
210
(1): 名無し@キムチ 2017/12/28(木)20:33 ID:26YsjXJQ(2/2) AAS
最近わかったんだが、Unityでは基本あるオブジェクトにつけたスクリプトから他のオブジェクトを動かしてはいけないんですね。
あくまでもそのオブジェクトにだけ関するスクリプトであるということ。
MonoBehaviorの「Mono」とはそういう意味なんですね。
211: 2017/12/28(木)20:57 ID:bdqePp8Y(2/2) AAS
何いってんのこいつw
212: 2017/12/28(木)21:42 ID:mWenZKXP(1) AAS
NSObjectのNSはNextStepの略だしな
213: 2017/12/28(木)21:51 ID:VBJfLBcj(1) AAS
NSって。。風俗かよwww
214
(1): 2017/12/28(木)22:22 ID:epGNZdyE(4/4) AAS
>>210

物理演算をつけたオブジェクトは、transform命令では動かさない方が良い
同様に、Rigidbody.positionやRigidbody.rotationも極力直接いじらないほうが良い
(なるべく、初期値を設定するだけにしておく)
物理演算をつけたオブジェクトは、原則velocity設定や、
AddForceかAddTorqueで動かさないと、演算に干渉して挙動が不安定になる
215: 2017/12/28(木)23:00 ID:mH5YII84(8/8) AAS
>>187 >>200

全部1フレーム内での出来事だったのか

>>186 >>200

呼び出される順序の問題で、物理演算をまたいでしまうと、
その時点で1フレーム分の内容のズレが出ちゃうのが真相か・・・
216: 2017/12/29(金)09:19 ID:K0u5BC7r(1) AAS
>>214
それはワープになるからな
MovePosition使えば大丈夫だよ
217
(2): 2017/12/29(金)23:42 ID:qixlPtWp(1) AAS
初心者です。
2Dでジャンプアクションゲームを物理演算で製作中です。
ようやく左右への移動ができるようになったところです。
(Input.GetAxisをvelocityに代入しています)
ジャンプの際に、お聞きしたい事があるのですが、
まず地面に接している判定をどうするのか、
ジャンプはvelocity変更でよいのか、AddForceの方がよいのか、
ボタンを押している時間に応じてジャンプを高くしたい
(無制限に高くではなく、ジャンプ力には上限を設けたい)
などを詳しく解説してあるサイトとかありますでしょうか?
あるいは、ジャンプ動作のスクリプトに、定石・セオリーみたいのはあるのでしょうか?
218
(1): 2017/12/30(土)00:35 ID:5n68sL0m(1) AAS
AddForceの方がいいよ、単純にジャンプだけだったら変わんないかもしれないけど他の動作と重なったときに融通がきかなくなる
設置してるかどうかはコリジョンを見れば良いんだよ
ジャンプ系の処理は定石化してるから、Youtubeでしっかり頭に叩き込んだほうが良いよ
数値の上限については、ちゃんとC#らしい書き方ができるといいね
219
(1): 2017/12/30(土)09:26 ID:sj8HSsvd(1) AAS
UNITYの定石としては、アセットを買うことですね
220
(1): 2017/12/30(土)14:20 ID:LpYIXbLi(1) AAS
"物理演算"でやるならVelocityは基本使っちゃだめよ
物理演算を無視した移動だから見た目が物理っぽくなくなるよ
キャラの操作制御はInput.GetAxisでもいいがCharacter Controllerを使えばisGroundというパラメーターで地面との接点判定できるよ
221
(1): 2017/12/30(土)16:10 ID:DH75+pHx(1) AAS
>>217
初心者向けに
2D platformerというジャンプアクションゲームのアセット(無料)がある

外部リンク:www.assetstore.unity3d.com

あとはggれば解説してるとこがあったはず
222: 217です 2017/12/30(土)23:14 ID:6xEuTupH(1) AAS
この時間しかレスできず、大変すみません。
皆さん、いろいろアドバイス下さり、ありがとうございます。

>>218さん
>>220さん
velocityは直接変えない方がよいんですね。
AddForceでImpuseモードで変更することにしました。

>>219さん
>>221さん
アセットは魅力的に思っていましたが、導入方法が分からなかったのと、
基本有料と思って、二の足を踏んでいました。
無料のジャンプアセットあるのですね。ためになりました。

>>220さん
Character Controllerは3D専用の機能かと思って触っていませんでした。
これから勉強します。
223: 2017/12/31(日)11:58 ID:YEuDj3bX(1/3) AAS
物理演算を使って、物理法則に則ったゲームを作成するのか、

物理演算を使って、既存型のゲームを作成するのか、
(コライダーは利用するが、動きは非物理)

物理演算を使わずに、既存型のゲームを作成するのか
(旧来のゲームシステム)
224
(1): 2017/12/31(日)12:40 ID:YEuDj3bX(2/3) AAS
positionの直接変更は、コライダーへの衝突計算が乱れる危険性あり

MovePositionによるposition変更は、velocity変更に基づいているので、
比較的安全にコライダーとの衝突計算がなされる

velocity変更を行わずに、全てAddForceで行った方が、
より自然な物理演算になるけど、velocityを0にするのが難しくなる

AddForceでvelocityを0にしようと逆方向に力を与え続けると、
逆向きの加速度がついてしまうので、基本的にはDragで減速せざるを得ない
225
(1): 2017/12/31(日)13:07 ID:YEuDj3bX(3/3) AAS
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では使えない
1-
あと 777 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.014s