質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

3323閲覧

Unity DOTweenでの「すり抜け」問題について

beryberybery

総合スコア41

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/06/16 05:27

DOTweenのアニメーションを使って

オブジェクトを動かしたのですが、

Colliderを無視してアニメーションしてしまいます。

DOTweenを使って、「すり抜け」現象を回避するには

どのような対処法があるでしょうか、

ご存知の方がいらっしゃいましたら

是非教えていただきたいですm(_ _)m

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

一案として、下記のようなやり方ではどうでしょうか?

  • 実際に動かしたいオブジェクト(名前は仮に「Sphere」とする)にはColliderRigidbodyをアタッチする。Is Kinematicはオフ。
  • 空のオブジェクトを作り(名前は仮に「Anchor」とする)、Rigidbodyをアタッチする。こちらはIs Kinematicをオンにしておく。Colliderはアタッチしない。
  • SphereにSpringJointをアタッチし、Anchorと繋ぐ。Auto Configure Connected Anchorはオフにする。AnchorとConnected Anchorは(0, 0, 0)とする。追従性をよくするためSpringは大きめにする。振動を抑制するためSphereのRigidbodyのDragもある程度大きくする。
  • AnchorをDOTweenで動かす。Anchorは障害物を無視して動く。SphereはAnchorに引っ張られてついていくが、途中に障害物があるとひっかかる。

試しに下記スクリプトをAnchorにアタッチし...

C#

1using DG.Tweening; 2using UnityEngine; 3 4[RequireComponent(typeof(Rigidbody))] 5public class AnchorMotor : MonoBehaviour 6{ 7 [SerializeField] private Transform[] waypoints; 8 9 private new Rigidbody rigidbody; 10 private int waypointIndex; 11 12 private void Start() 13 { 14 this.rigidbody = this.GetComponent<Rigidbody>(); 15 this.MoveToNextWaypoint(); 16 } 17 18 private void MoveToNextWaypoint() 19 { 20 this.rigidbody.DOMove(this.waypoints[this.waypointIndex].position, 5.0f).OnComplete( 21 () => 22 { 23 this.waypointIndex = (this.waypointIndex + 1) % this.waypoints.Length; 24 this.MoveToNextWaypoint(); 25 }); 26 } 27}

SphereのRigidbodyのDragは100、SpringJointのSpringは250、Damperは0とした状態で、5つのウェイポイントをたどるようにAnchorを動かしてみたところ、下図のような見た目になりました。オブジェクトの位置を示すためウェイポイントには赤い菱形、Anchorには青い丸のアイコンを付けていますが、実際のゲーム画面上ではこれらは表示されないためSphereが単独で動いているように見えます。

図

投稿2020/06/16 14:22

Bongo

総合スコア10807

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

beryberybery

2020/06/17 02:27

ご回答ありがとうございました!! SpringJointを使う方法は考えもしなかったです! 動画も付けていただき、丁寧に解説 ありがとうございますm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問