Unityでキャラクターを動かす(左右&前進加速)

 

{{DZ_TITLE}}
Unityのキャラクターを簡易的に作りました。
方向を変更できないサンプルが多いのですが、こちらは左右に向きを変えられます。

プログラム

using System.Collections;
using System.Collections.Generic;
using Microsoft.Win32.SafeHandles;
using UnityEngine;

public class Manual : MonoBehaviour
{
    private float angle_;
    private float speed_;
    public float rotateSpeed;       // 1
    public float maxSpeed;          // 10
    public float acceralate;        // 0.01f
    public float acceralateDown;    // 0.02f

    // Start is called before the first frame update
    void Start()
    {
        angle_ = 180;
        speed_ = 0;
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            angle_ -= rotateSpeed;
        }
        if (Input.GetKey(KeyCode.RightArrow))
        {
            angle_ += rotateSpeed;
        }
        if (Input.GetKey(KeyCode.Space))
        {
            speed_ += acceralate;
            speed_ = Mathf.Min(speed_, maxSpeed);
        }
        else
        {
            speed_ -= acceralateDown;
            speed_ = Mathf.Max(speed_, 0);
        }
        Transform myTransform = this.transform;

        Vector3 worldAngle = myTransform.eulerAngles;
        Vector3 worldPosition = myTransform.position;
        worldAngle.x = 0; 
        worldAngle.y = angle_;
        worldAngle.z = 0;

        worldPosition.z -= Mathf.Cos((angle_) * Mathf.Deg2Rad) * speed_;
        worldPosition.x -= Mathf.Sin((angle_) * Mathf.Deg2Rad) * speed_;

        myTransform.eulerAngles = worldAngle;
        myTransform.position = worldPosition;
    }
}

使い方

  • Scriptを作成して、名前をManualにします。
  • Script:Manualを編集して、上記のソースコードを貼り付けてください。
  • 自分のキャラクターをAssetに登録してください。
  • 自分のキャラクタをAssetから画面にドラッグ&ドロップして、Sceneに登録。
  • 自分のInspectorで「Add Component」を選択して、 「Scripts」→「Manual」を選択
    /img/2020-09-12-003/2020-09-12-003-001.jpg
  • 適応したScriptの動作パラメータを記載してください。
    (図を参考に)
    /img/2020-09-12-003/2020-09-12-003-002.jpg

カメラの追従について

次の記事で書こうと思います。

おすすめ記事

エラーを解消したい PermissionError: [Errno 13] Permission denied: ファイル名 - Python
エラーを解消したい PermissionError: [Errno 13] Permission denied: ファイル名 - Python
日時による条件抽出 - Python Pandas
日時による条件抽出 - Python Pandas
画像ファイル読込、書込み imread、imwrite - OpenCV、Python徹底解説
画像ファイル読込、書込み imread、imwrite - OpenCV、Python徹底解説
気象庁 台風位置表 をpython foliumで可視化する
気象庁 台風位置表 をpython foliumで可視化する
動画ファイルの読込 - OpenCV、Python徹底解説
動画ファイルの読込 - OpenCV、Python徹底解説
プログラムは独学が良いか、スクールが良いか?【無償カウンセリング、無料体験あり】
プログラムは独学が良いか、スクールが良いか?【無償カウンセリング、無料体験あり】
Supponsered

外部サイト
↓プログラムを学んでみたい場合、学習コースなどもおすすめです!

Comments

comments powered by Disqus