[Unity 3D] プレイヤーを回転する床と一緒に回転させる方法。

(2022/05/07)
プレイヤーを回転する床と一緒に回転させる方法

使用したUnityのバージョン:2020.3.30f1

回転する床の作り方

Transform.Rotateを使えば、ゲームオブジェクトを簡単に回転させることができます。

1. HierarchyからCubeを追加し、適当な名前のスクリプトをアタッチします。
(ここでは、floor_rtとしました。) ゲームオブジェクトの名前をFloorに変えておきます。

2. FloorのScaleの値の xを10 , yを1 , zを10 に変更してください。

3. 「1.」で用意したスクリプトに、下のコードを貼り付けてください。

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

public class floor_rt : MonoBehaviour
{

    void Update()
    {
       this.transform.Rotate(0, 1f, 0);
    }

}


ゲームを開始すると、下のGifみたいにFloorが回転していたら回転する床の完成です。 プレイヤーを回転する床と一緒に回転させる方法

回転する床と一緒に回転するプレイヤーの作り方

回転する床ができたので、プレイヤーを作っていきます。今のままだと、プレイヤーが回転する床の上に乗っても、プレイヤーは床と一緒に回転してくれません。

回転する床と一緒にプレイヤーを回転させるために、Floorをプレイヤーの親オブジェクトに設定します。Hierarchyで操作して、親オブジェクトに設定しても良いのですが、プレイヤーをずっと回転する床の子オブジェクトにしたくない場合などを考えて今回はスクリプトからFloorを親オブジェクトに指定する方法で進めていきます。

1. HierarchyからCapsuleを追加し、適当な名前(ここでは、playerとしました。) のスクリプトとRigidbodyをアタッチします。ゲームオブジェクトの名前をPlayerに変えておきます。

2. Playerにアタッチしたスクリプトに下のコードを貼り付けます。

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

public class player : MonoBehaviour
{
  [SerializeField] Transform floor;

  void Start()
  {
      this.transform.SetParent(floor);
  }

}

3. PlayerのInspectorのスクリプトのところに、Floorが表示されているので、そこにHierarchyにあるFloorを指定します。

プレイヤーを回転する床と一緒に回転させる方法

完成

ゲームを実行すると、プレイヤーが回転する床と一緒に回転しているのを確認できます。 プレイヤーを回転する床と一緒に回転させる方法
 
他の記事も見る
 
  • プライバシーポリシー