【Unity2D】C#スクリプトでオブジェクトを回転させる【Rotate】

  • Unityでオブジェクトを回転させたいな

その悩みを解決します。

transform.Rotate(x, y, z); 各軸の周りで回転する

結論から言うと、Rotateメソッドを使うことで、回転させることができます。

目次

オブジェクトを回転させる方法

  1. オブジェクト設置
  2. そのオブジェクトにスクリプトをアタッチ
  3. 回転させるスクリプトを書く

丁寧に説明していきます。オブジェクトを設置して、スクリプトが設置してある人は、スクリプトを書く部分だけご覧ください。

オブジェクト設置

ヒューマンピクトグラムの画像を使う

回転させるオブジェクト

http://pictogram2.com/?p=2195

このヒューマンピクトグラムさんのこの画像を使わせて、いただきます。自分のオブジェクトがある方は、それを使ってね。

Projectウィンドウに画像をもってきて、Sceneビューに設置

Projectウィンドウに画像をもってきて、Sceneビューに設置

【ダウンロードした素材をProjectウィンドウにドラッグ&ドロップ】→【Sceneビューにドラッグ&ドロップ】

そのオブジェクトにスクリプトをアタッチ

そのオブジェクトにスクリプトをアタッチ

【回転させたいオブジェクト選択】→【Inspector】→【Add Component】→【New Script】→【名前はなんでも良き(自分はRotationにした)】

回転させるスクリプトを書く

X軸の周りで回転させる場合、Y軸の周りで回転させる場合、Z軸の周りで回転させる場合、を書きます。

X軸の周りで回転

X軸の周りで回転

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

public class Rotation : MonoBehaviour
{

    float rotation_speed = 0; // 回転速度

    // Use this for initialization
void Start()
{

    }

    // Update is called once per frame
void Update()
{
        // 左クリックされたら回転速度を設定する
        if (Input.GetMouseButtonDown(0))
        {
            this.rotation_speed = 20.0f;

        }
        // 回転速度分回す
        transform.Rotate(this.rotation_speed, 0, 0);

    }
}

if (Input.GetMouseButtonDown(0)){
A
}
左クリックされたら、Aの処理を行う
transform.Rotate(this.rotation_speed, 0, 0);

X軸の周りをfloat rotation_speed変数の値で回転する

「X軸の周り」とか言われても、わかりづらいと思うので自分で実行してみてください。

Y軸の周りで回転

Y軸の周りで回転

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

public class Rotation : MonoBehaviour
{

    float rotation_speed = 0; // 回転速度

    // Use this for initialization
void Start()
{

    }

    // Update is called once per frame
void Update()
{
        // 左クリックされたら回転速度を設定する
        if (Input.GetMouseButtonDown(0))
        {
            this.rotation_speed = 20.0f;

        }
        // 回転速度分回す
        transform.Rotate(0, this.rotation_speed, 0);

    }
}

if (Input.GetMouseButtonDown(0)){
A
}
左クリックされたら、Aの処理を行う
transform.Rotate(0, this.rotation_speed, 0);

Y軸の周りをfloat rotation_speed変数の値で回転する

「Y軸の周り」とか言われても、わかりづらいと思うので自分で実行してみてください。

Z軸の周りで回転

Z軸の周りを回転

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

public class Rotation : MonoBehaviour
{

    float rotation_speed = 0; // 回転速度

    // Use this for initialization
void Start()
{

    }

    // Update is called once per frame
void Update()
{
        // 左クリックされたら回転速度を設定する
        if (Input.GetMouseButtonDown(0))
        {
            this.rotation_speed = 20.0f;

        }
        // 回転速度分回す
        transform.Rotate(0, 0, this.rotation_speed);

    }
}

if (Input.GetMouseButtonDown(0)){
A
}
左クリックされたら、Aの処理を行う
transform.Rotate(0, 0, this.rotation_speed);

Z軸の周りをfloat rotation_speed変数の値で回転する

「Z軸の周り」とか言われても、わかりづらいと思うので自分で実行してみてください。

これが一番使いますね。

あなたがやりたいこともこれだと思います。

徐々に減速させるには

Z軸の周りで回転する場合のスクリプト例です。とうぜん、X軸・Y軸の周りを回転させるときでも同じように、減速できます。

減速させるスクリプト

減速させるよ

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

public class Rotation : MonoBehaviour
{

    float rotation_speed = 0; // 回転速度

    // Use this for initialization
void Start()
{

    }

    // Update is called once per frame
void Update()
{
// 右マウスが押されたら回転速度を設定する
if (Input.GetMouseButtonDown(0))
{
this.rotation_speed = 20.0f;

        }
// 回転速度分回す
transform.Rotate(0, 0, this.rotation_speed);

        // 減速させる
        this.rotation_speed *= 0.98f;

    }
}

this.rotation_speed 変数に0.98をかけることによって、減速させています。

この辺は算術演算子と変数を使った計算でも触れてます。

あわせて読みたい
【Unity&C#】算術演算子と変数を使った計算【基本知識】 前回のint型(整数型)とfloat(小数型)、変数に変数を代入はどうでしたか。今回は変数をつかった計算をします。 【C#で使える算術演算子】 演算子 種別 使い方 加算(足...

これで減速します。ぜひ、やってみてください。

まとめ

transform.Rotate(x, y, z); 各軸の周りで回転する

Rotateメソッドを使えば回転させることができる

もしUnityでゲームを作り始めたばっかの人は、サンプルゲームを作ってみるのはいかがでしょうか。

あわせて読みたい
【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろう【チュートリアル】 ▼この記事を先に見ておきましょう▼ https://miyagame.net/basis-cs/ 当サイトではUnityでのサンプルゲームを作成することができます。Unityでゲームを作っていきましょ...

以上さぎのみや(@saginomiya8)でした。

Unityでオブジェクトを回転させる

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次