[過去ログ] 【3Dゲームエンジン】Unity質問スレッド33 	 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
182: 2017/12/28(木)02:20 ID:aEDu9yFW(1) AAS
 全然関係ねえよ 
 オブジェクトの生成と破壊は1フレーム掛かるから後処理は1フレーム待てと言われただろ 
 シーンの呼び出しも同じって>169に言われてんだろ 
183: 2017/12/28(木)02:49 ID:mH5YII84(6/8) AAS
 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フレーム遅れるんでしょうね・・・ 
184: 2017/12/28(木)02:51 ID:ZI2vMH5M(1/2) AAS
 外様が言うのは何だが 
 コードも貼られて実に良スレだな 
185(2): 2017/12/28(木)03:22 ID:mH5YII84(7/8) AAS
 ごめんなさい、原因が分かったよ 
 
 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でした 
186(1): 2017/12/28(木)03:24 ID:yHTFG4+0(1) AAS
 物理はFixedUpdateのタイムスライスで動いてるから、 
 Update系とは時間の流れ違うだろ 
187(1): 2017/12/28(木)04:43 ID:NrJHfHro(1) AAS
 >>185 
 何の確認もせずに適当な思い込みで妄想しても 
 的外れなだけじゃないキムチ君w 
 毎回そんなアホな事をやってるから迷走すんだよ 
 
 だったらStartとStart2に 
 Debug.Log(Time.frameCount); 
 で実実行時のフレームカウント出してみなよ 
 両方とも1って出るから 
188: 2017/12/28(木)07:27 ID:yfK1iHQW(1) AAS
 161最強!w 
189(1): 2017/12/28(木)09:26 ID:fukyqugk(1/5) AAS
 初心者です 
 マテリアル作って保存したらファイル名が勝手に.matから.MATに変わってそのせいで警告が出てる??みたい 
 パソコンのせいなんでしょうか 
 解決方法分かりませんか? 
190: 2017/12/28(木)09:35 ID:PGevnyVZ(1) AAS
 警告文そのものを貼ってください 
191: 2017/12/28(木)09:53 ID:fukyqugk(2/5) AAS
 警告で 
 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 
 です 
192(1): 2017/12/28(木)10:09 ID:ZI2vMH5M(2/2) AAS
 どーせテクスチャをエクスプローラーからコピペして置き換えしたりしてんだろ 
193: 2017/12/28(木)10:24 ID:o+JGejkD(1) AAS
 >>189 
 君みたいな雑魚にUnityは使いこなせません 
 10年webで下積みしてから出直してきなさい 
194(1): 2017/12/28(木)10:45 ID:fukyqugk(3/5) AAS
 >>192 
 いえ、普通にUnityエディタ内でmaterialを作成してます 
 で真っ白なまま保存しても.matで保存されるんですが少しでも色を変えると保存した時に拡張子が.MATに変わってしまうんです 
195(1): 2017/12/28(木)11:13 ID:ghF3Rjv1(1/5) AAS
 >>194 
 ファイル消したりしてるでしょ 
 元ファイル消したのにmetaファイル消してないから名前が使えない 
 だから別の名前使うね、ってなってる 
 生成も削除も移動も全てuntiy上で行ってください 
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 
 AFixedUpdate 
 BA 
 CB 
 DUpdate 
 EAA 
 の順になるので、 
 
 @Satrt→BAの間には、FixedUpdateが入っているので、 
 その間に物理演算の結果が更新されますが、 
 
 CB→EAAの間には、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 
上下前次1-新書関写板覧索設栞歴
あと 791 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.017s