0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【clusterワールド作成】掴まれている状態のアイテムの衝突(当たり)判定にハマった件

Last updated at Posted at 2021-01-02

clusterのゲームワールドを作成中でハマった事例、解決方法を紹介します。

環境

Windows10
Unity 2019.4.13f1
Cluster Creators Kit 1.11.0

ハマったこと

AがBに衝突するとBが消える
(例)剣がモンスターを刺したらモンスターが消える

というのを実装しようとして、公式ブログの「的あてゲームの作り方」を見ながら、各Inspectorを以下のように実装。
なお、Aは剣のようなプレイヤーが掴めるアイテムです。(公式ブログの「掴めるアイテムの作り方」を参考にしました。

各Inspector

A

1.掴めるアイテムにするため、Grabbable Item を追加
2.自動的に、Item、Rigidbody、Movable Item が追加される
3.衝突を検知するするため、On Collide Item を追加し、以下の画像のように設定
Image from Gyazo

B

Destroy Item Gimmickを追加する。
Itemは自動についてくる。
Image from Gyazo


### 結果 RUNすると、AがBに衝突してもBが消えない。

なぜだ?


解決方法

結構時間を溶かして諦めかけたとき、

公式の Cluster Creator Kit ドキュメントに以下の記載あり

掴まれている状態のアイテムはそのRigidbodyがIsKinematicに変更されているため、上述のコライダーとのCollision判定が行われません

私が作成してるオブジェクトAは、プレイヤーに掴んでもらうものでしたので、collisionでは判定されなかったということでした。

その対策方法を公式より引用

それらのアイテムでの衝突判定が必要な場合は、どちらかにIsTriggerなコライダーを設定してTriggerイベントを検知するか、設置されているコライダーにIsKinematicがオフでConstraintを全てオンにしたRigidbodyを設定して下さい

私は上記方法から、Istriggerなコライダーを設定しました。
公式には「どちらかに」と記載されてますが、私の場合どちらかだと反応せず、両方(AとB)に設定したらうまくいきました。(つまり、AがBに衝突するとBが消えました)

各Inspector

A

Colliderの IsTrigger をチェックし、
On Collide Item Trigger の Collision Type を Triggerにします。
Image from Gyazo

B

Colliderの IsTrigger をチェック
Image from Gyazo




これで、AとBが衝突すると、Bが消えるようになりました。



0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?