使用した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);
}
}
回転する床ができたので、プレイヤーを作っていきます。今のままだと、プレイヤーが回転する床の上に乗っても、プレイヤーは床と一緒に回転してくれません。
回転する床と一緒にプレイヤーを回転させるために、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を指定します。