▼そのUnityの作業、依頼しませんか?
メソッド

Vector3.forwardを使ってZ軸を中心にオブジェクトを回転させる【Unity】

Unityでオブジェクトをz軸を中心に回転

▼このように回転▼

z軸を中心に回転させる

オブジェクトをZ軸を中心にして回転させます。

前提条件

  • 回転させたいオブジェクトにスクリプト(名前をPlayerControllerしました)がアタッチされている

だけです。そのスクリプトに書いていってください。

Z軸を中心に回転させるスクリプト

PlayerController.cs

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

public class PlayerController : MonoBehaviour
{
    Rigidbody rigidBody;

    // Use this for initialization
    void Start()
    {
        rigidBody = GetComponent<Rigidbody>();
    }

    // Update is called once per frame
    void Update()
    {
        RotateObject();
    }

    void RotateObject()
    {
        if (Input.GetKey(KeyCode.A))
        {
            transform.Rotate(Vector3.forward);
        }

        if (Input.GetKey(KeyCode.D))
        {
            transform.Rotate(-Vector3.forward);
        }
    }
}

 if (Input.GetKey(KeyCode.A))
{
//処理
}
Aキーが押されたときに処理を行う
transform.Rotate(Vector3.forward);z軸を中心に回転させる(Rotationのz軸の値が上がる)
z軸を中心に回転させる

このように回転します。RotationのZ軸の値が上がることによって回転させています。

回転するスピードを上げたい場合

PlayerController.cs

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

public class PlayerController : MonoBehaviour
{
    Rigidbody rigidBody;
    int speed = 10;

    // Use this for initialization
    void Start()
    {
        rigidBody = GetComponent<Rigidbody>();
    }

    // Update is called once per frame
    void Update()
    {
        RotateObject();
    }

    void RotateObject()
    {
        if (Input.GetKey(KeyCode.A))
        {
            transform.Rotate(Vector3.forward * speed);
        }

        if (Input.GetKey(KeyCode.D))
        {
            transform.Rotate(-Vector3.forward * speed);
        }
    }
}

Vector3.forwardに数値をかけることによって、回転するスピードがあがります。自分の望むスピードにしてください。

ちなみにこの記事を合わせるとロケットのようなものができるよ

任意のキーを押したときの処理
【Unity】任意のキー(A,Space,Dなど)を押したとき処理を設定できるInput.GetKey(KeyCode.A)の使い方【Unity】任意のキー(SpaceやAやDやEなど)を押したときの処理を設定します。という悩みを解決します。 ●任意のキーを押したときの処理を設定する方法 if (Input.GetKey(KeyCode.任意のキー)) { したい処理を書く } 任意のキーの部分を「A」や「Space」などのキーに変えてください。したい処理の部分は自分のしたい処理のスクリプトをかいてください。...

この記事と組み合わせるとロケットのようなものができます。これも記事にする予定です。

まとめ

  • transform.Rotate(Vector3.forward);でz軸を中心に回転させることができる

以上さぎのみや(@saginomiya8)でした。SNSでシェアしてね( ・∇・) 明日からも一生無双でやったりましょう。

Unityサンプルゲーム
【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろう【チュートリアル】【Unity2D&3Dサンプルゲーム・チュートリアル】Unityにおいてのサンプルゲームの作り方が書いてある記事って少ないですよね。そこで当サイトUnishar(ユニシャー)が動画よりわかりやすいサンプルゲームを無料で提供します。...
ABOUT ME
さぎのみや
さぎのみや
超書手。現在はUnityメディア「ユニシャー」の運営とゲーム開発がメインです。Unity、ライティング関係のお仕事お待ちしております。 >>詳しいプロフィール >>Amazonほしいものリスト
【Unity3D】新しいサンプルゲーム(チュートリアル)を作りました!!!
Unity有料サンプルゲーム

「Unityで3Dゲームを本格的に作っていきたい!」という人におすすめのチュートリアルとなっています。

画像のようなゲームの作り方を販売しています。色々と応用できるサンプルゲームとなっています。ぜひ、作ってみてください。

詳細
>>【Unity3Dサンプルゲーム・チュートリアル】「フリスビーを犬に届けよ!」の概要

>>BOOTHでこのチュートリアルを見る

【RT・フォローであなたのスキルが上がる】

シェアフォローする

さぎのみやのモチベが上がる

コンテンツの質が上がる

あなたの能力も上がる

あなたの
Twitterでのシェア

であなたの能力が上がります。

>>さぎのみやのツイッター(@saginomiya8)

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


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