Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!

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でオブジェクトに重力を1分以内につける方法

  どうも、チャーさん(@chaa___san)です。   あなたはUnityでオブジェクトに重力をつけたいですか?   この記事ではUnityでオブジェクトに、 重力を …

no image

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

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

no image

unityで敵を索敵する方法

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

no image

unityでターン制のゲームを作るにはコレを使いましょう

どうも、チャーさんです。 あなたはunityでターン制ゲームを作りたい そう思っていませんか?   この記事ではunityでターン制のゲームを 作る方法を書いています。   なので …

no image

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

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

no image

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

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

no image

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

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

no image

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

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

no image

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

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

no image

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

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

no image

unityでカメラを追従させる簡単なコードと方法の説明をする記事

  どうも、チャーさんです。   あなたはunityでカメラの追従をさせたい、 こう思ってませんか?   この記事ではオブジェクトをカメラで追従させる、 (カメラが追いか …

no image

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

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

no image

unityで敵に近づくと追いかけてくるコードとコードの解説記事

どうも、チャーさんです。   あなたはunityで敵に近づくと、 プレイヤーを追いかけてくるという機能を つけたいと思っていませんか?   この記事ではそれを実現するコードと方法や …

no image

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

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

no image

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

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

最新記事

チャーさん

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

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

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