ざんないプログラマァのアプリ開発日記

ゲームエンジンUnityを使って何か創る

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Unity3D Collider(2)

Collider と Raycast の衝突について
移動は完了しているのに衝突判定が予想外の動きをしている?
これはどういうことだ??

Collider と Raycast の衝突は、同フレーム内(Update)で座標移動と衝突判定(Raycast)を行うとヒットが検出されない。
なぜなら、物理学計算はフレームレートとは別に独立して動いているから。

オブジェクトの移動は完了していてもコリダーは移動していないということか・・・
(;`∀´)

【実験】
・BoxCollider を持たせたオブジェクトAとBとを適当な離れた場所へ配置する
・同フレーム内でオブジェクトAをBの横へ移動してBからAへ Raycast で衝突判定を行う
 Aの座標移動は次のようなもの
 A.position = B.position * -Vector3.right;
・Update()とFixedUpdate()それぞれで実行
【結果】
Update() 内で処理するとヒットしない。
FixedUpdate() 内で処理するとヒットする。
よって、移動処理した後の衝突判定は FixedUpdate() 内もしくは呼ばれた後に行う必要があると思われる。

WEBサンプル

通常このようなタイミングで使うことはなさそうだが?
・・・今更だけど根本的に作り方が間違っていたのか!?
キューブが1づつと決まった移動するだけなのでセルで作ればよかったのか?!?

FixedUpdate() は Edit -> ProjectSettings -> Time -> Fiexedtimestep で指定した間隔で呼ばれる。ただし、処理落ちなどにより必ずしもこの間隔で呼ばれるとは限らない。
小さい値に設定すればより詳細な物理学計算が行われるが負荷が伴うだろう。
  1. 2011/02/25(金) 14:22:20|
  2. 開発関連
  3. | トラックバック:0
  4. | コメント:0
<<Unity3D ゲームコンテスト結果発表!!! | ホーム | Unity3D GUI.Button の落し穴?>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://iphone3gsapplication.blog129.fc2.com/tb.php/148-f03e2a86
この記事にトラックバックする(FC2ブログユーザー)

ざんないブログへようこそ!

KOH

Author:KOH
【開発環境】
Win(XP/7)/Mac Mini
Unity Pro + iOS Pro
3ds Max 2011
VS2008

【iOSアプリ】

I-C (3D puzzle) - PETITDIGI2012/09/07
I-C (3Dパズル)

I-C (3D puzzle) Free - PETITDIGI2012/09/07
I-C (3Dパズル)無料

【Androidアプリ】
I-C (3D puzzle) Free - PETITDIGI2012/11/22
I-C (3Dパズル)無料

【サイト】
・Unity 3D Selfish Training
・Unity 3D でオリジナルキャラクターを表示させる
・サイトマップ

書籍

カテゴリ

開発日記 (68)
アプリ第1弾 (37)
iPhone (16)
麻雀 (15)
Unity 3D (82)
何か作ってみよう (10)
セーブデータ (5)
開発関連 (37)
その他 Unity (28)
3ds Max (11)
体験したみた (9)
その他 3ds Max (2)
Titanium (7)
Studio (4)
iPhone (1)
Android (2)
情報 (47)
書籍 (18)
iPhone (19)
PC (2)
テレビ (4)
コンシューマ (3)
その他 情報 (1)
3.11東日本大震災 (0)
未分類 (1)

RSSリンクの表示

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。