unity

unityで動く床にのるとオブジェクトが滑る場合の解決法

投稿日:

Pocket

うも、大石です。

 

unityで動く床を作ったのに

オブジェクトが上に乗ると滑って

一緒に付いて行かずに落ちる、、

 

みたいなことで悩んでますか?

 

 

この記事を読めば、unityで動く床に乗っても

滑ることなく一緒に付いていってくれますよ。

 

ということで動く床が滑ることで悩んでたら

読んでください。

 

 

スポンサードサーチ

unityで動く床にのるとオブジェクトが滑る場合の解決法

 

unityで動く床に乗った時に

滑らないようにするには、

 

床オブジェクトを移動させるのに、

transformを使うのをやめましょう。

 

そして代わりに、rigidbodyのAddforce、

又はvelocityを使うと解決します。

 

 

というのもtranform.positionなどで

床を動かすと、床は移動してくれますが、

上に乗ったオブジェクトが滑って移動しないからです。

 

ですが、rigidbodyのAddforceなどで、

床オブジェクトを動かすと、

上に乗ったオブジェクトは滑らずに

 

ちゃんと床と一緒に進行方向に動いてくれるからです。

 

 

ということで、その証拠として動画を

とったので、みてみましょう。

 

 

はい、このように、床をrigidbodyで

動かしてやると、

 

床の上に乗ったオブジェクトは

滑り落ちずに、ちゃんと一緒に動いて

ついてきてくれます。

 

 

ということで、あなたがunityで

床を動かす時に、上に乗るオブジェクトが

滑るなら、

 

rigidbodyで床を動かしましょう。

 

rigidbodyで動かす際の注意点

 

又一応注意ですが、

動く床も、上に乗るオブジェクトも

rigidbodyコンポーネントをつけてる必要があります。

 

また、動く床の方は、

rigidbodyコンポーネントの

constraintsから、

 

回転と進行方向(必要なら)を

制限しておきましょう。

 

 

でないとオブジェクトが動く床に

乗った時に床が回転してオブジェクトが落ちたり、

進行方向がずれていったり、

 

物理が働くので意図した動きを

しなくなることがあります。

 

ということで制限をかけておきましょう。

 

addforceかvelocityどちらを使うか

 

ちなみにここからは余談ですが、

rigidbodyで動かす際、addforce()でも

床を動かすことはできます。

 

そして、その床の上に乗っても

rigidbodyなのでオブジェクトは滑ることなく、

ちゃんと一緒についてきれくれます。

 

ですが、addforce()で床を動かすと、

床が動くスピードがどんどん加速します。

 

 

というのもaddforceとは、力がずっと

オブジェクトにかかり続けるので、

どんどん加速してしまいます。

 

すると動く床としては使いにくくなるので、

動く床を作る時には、

rigidbodyのvelocityを使うと良いでしょう。

 

 

ちなみにvelocityに関しては書き方は、

 

Rigidbodyの変数宣言を取得した後、

Rigidbodyの変数.velocity = new Vector3(x,y,z);

で書けば良いです。

 

詳しくは以下のコードを参考にしてみてください。

 


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class floor : MonoBehaviour
{
	Rigidbody rb;
    // Start is called before the first frame update
    void Start()
    {
    	rb = GetComponent();
        
    }

    // Update is called once per frame
    void Update()
    {
         rb.velocity = new Vector3 (0,0,1);
    }
}

 

ご存知だとおもいますが、

new Vector3(x,y,z)の部分に数字を入れると

その方向に対して床が進んで行くので、

 

床の進行方向はそこでコントロールしてください。

 

 

スポンサードサーチ

まとめ

 

ということでまとめに入ります。

 

unityで動く床を作ったのに、

上に乗るオブジェクトが滑るなら、

transform.positionで動かさずに、

 

rigidbodyで動く床を作りましょう。

 

 

それでは読んでもらってありがとうございました。

 

大石

 

-unity

==========

Unity用の3Dモデルを探してる方、欲しい方ご注目!

自作のUnity用3Dモデルを販売(基本的に無料版あり)してますので、
以下のリンクより一度ご覧ください。

Unity用3Dモデルを見てみる

==========


スポンサードサーチ

関連記事

no image

unityで弾の発射位置をコントロールする方法

どうも、大石です。 あなたはunityで弾の発射位置を自由に コントロールしたいですか?   この記事を読めばあなたの好きな位置から 弾を発射できるようになりますよ。   スポンサ …

no image

unityでprefabを複製する(スクリプトで)方法

どうも、大石です。 あなたはunityでprefabをスクリプトで複製 したいですか?   この記事を読めば、あなたはprefabをスクリプトで 複製できるようになります。   な …

no image

unityでオブジェクトをスクリプトで削除する方法

どうも、チャーさんです。   あなたはunityでゲームオブジェクトを、 スクリプトなどから削除したいですか?   この記事では、関数を使い、 ゲームオブジェクトを削除する方法を書 …

no image

unityで弾の発射の向きを敵に向ける方法(自動)

どうも大石です。   あなたはunityで弾を発射するときの向き をコントロールしたいと思っていませんか?   この記事を読めば、あなたはunityで 弾を敵に向かって発射させれる …

no image

unityで他のオブジェクトを取得する方法

どうもチャーさんです。   あなたはunityで他のオブジェクトを 取得したいがわからず困ってますか?   この記事では、unityで他のオブジェクトを 取得する方法を書いてます。 …

no image

unityでオブジェクトを回転させる方法「1分でできます」

どうも、チャーさんです。   あなたはunityでオブジェクトを回転させたいですか?   unityでゲームなど作るとオブジェクトを 回転させたい場面がありますよね。   …

no image

unityでのダンジョンの簡単な作り方(コードコピペで作れます)

どうも、チャーさんです。   あなたは、unityでダンジョンを作りたいと 思っていませんか?   この記事ではunityでのダンジョンの作り方を 説明してまして、本記事を読めば …

no image

blenderで作ったモデルをunityにインポートする方法「簡単です」

どうも、チャーさんです。   あなたはblenderで作ったものを、 unityで表示(インポート)したいと、 思っていませんか?   この記事では、あなたが作ったblenderの …

no image

unityで弾を発射する方法(簡単3ステップ)

どうも、大石です。   あなたは、unityで弾を発射したいですか? この記事を読めば、あなたはunityで弾を発射 できるようになります。   なので、弾を発射したければ、 この …

no image

[unity]foreach内でget componentを使う方法

どうも、チャーさんです。   この記事ではunityのforeachループで get componentする方法を書きます。     なのでこの記事を読めば、 &nbsp …

no image

unity上でblender作成モデルが透ける時の解決法

どうも、チャーさんです。   あなたはunityにblenderで作ったモデルを 持ってきたものの、面が透ける現象が起こって 困っていませんか?     この記事は、透け …

no image

unityで敵を索敵する方法

どうも、大石です。   あなたはunityでプレイヤーが敵を索敵する 機能をつけたいですか?   この記事を読めば、敵を索敵する 機能を簡単に作れますよ。   ということ …

no image

unityで矢印キーでオブジェクトを移動させるには(3d)

どうも、チャーさんです。 あなたはunityで矢印キーで3dオブジェクトを 移動させたいですか?   この記事では矢印キーによる3dオブジェクトの 移動を実現する方法を書いてるので、 読めば …

no image

unityでオブジェクトの色をスクリプトから変更する方法

どうも大石です。   この記事ではunityでオブジェクトの色を スクリプトから変更する方法を書いてますので、   この記事を読めばあなたはスクリプトから オブジェクトの色を変更で …

no image

unityでoculus questの開発をしたい方必見!手順まとめました

どうも、チャーさんです。   あなたはunityでoculus questの 開発をしたい、そう思ってませんか?     この記事ではunityでoculus quest …

最新記事

チャーさん

プログラミング・筋トレ・unity系の記事などを書いてます。

大学卒業後→開業→個人事業主7年目ぐらいです。webサイト制作したり、unityでゲーム開発しております。

youtubeもやってまして、主にプログラミング動画とかunity系の動画をあげてるので見てください。