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で敵を移動させる方法(詳細にわかりやすく説明します)

どうも、チャーさんです。   あなたはunityで敵を移動させたい、 そう思っていませんか?   コライダーなどでもできるが、他の方法が ないかと探してませんか?   & …

no image

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

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

no image

unityでオブジェクトを移動させたい人は読んでください。

どうも、チャーさんです。   あなたはunityでオブジェクトや、 プレイヤーなど自由自在に移動させたい、 そう思っていませんか?     キーボードの上下左右の矢印ボタ …

no image

unityでキー入力で攻撃する方法(3分以内にできます)

どうも、チャーさんです。   あなたはunityでキー入力による攻撃を したいですか?   この記事ではunityでキー入力で攻撃を する方法を書いてますので、あなたがこれを読めば …

no image

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

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

no image

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

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

no image

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

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

no image

unityで攻撃に当たり判定をつける方法

どうも、チャーさんです。 あなたはunityで攻撃に当たり判定をつけたいですか?   この記事では、当たり判定をつける 方法を書いてるので、読めば当たり判定をつけれます。   とい …

no image

unityでコンポーネントを取得する方法を詳しく解説

どうも、チャーさんです。 あなたはunityでコンポーネントを取得する方法を 探していますか?   この記事ではコンポーネントを取得する方法、 その際の変数宣言の書き方や、 コンポーネント名 …

no image

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

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

no image

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

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

no image

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

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

no image

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

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

no image

unityでボタンクリックで他のオブジェクトの色を変更するスクリプト

どうも大石です。   あなたはunityでボタンをクリックしたら、 他のオブジェクトの色を変更するという スクリプトを書きたいですか?     この記事を読めば、あなたは …

最新記事

チャーさん

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

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

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