【Unityゲーム開発】範囲指定関数Mathf.Clampの使い方

こんにちは。
今回は範囲指定関数の使い方を紹介いたします。コード公開しますので、ぜひ参考にしてください。

もくじ
・C#スクリプト
・デモ

C#スクリプト

範囲指定Mathf.Clamp関数を使います。

Mathf.Clampの基本形

Mathf.Clamp(value, min, max);

今回はマウスウィールでオブジェクトのスケールを変更するスクリプトに、
スケール範囲の制限をかけます。
最小値は0.5最大値は2に設定しました。インスペクター上からでも最小値と最大値を設定できます。

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

public class mouseWheel : MonoBehaviour {

   
    public GameObject _gameObject; //スケールを変更するゲームオブジェクト
    public float mini = 0.5f;//スケールの最小値
    public float max = 2.0f;//スケールの最大値


    // Update is called once per frame
    void Update()
    {
        //スケールの最大値最小値を制限
        _gameObject.transform.localScale = (new Vector3(Mathf.Clamp(_gameObject.transform.localScale.x, mini, max),
                                                     Mathf.Clamp(_gameObject.transform.localScale.y, mini, max),
                                                     1f));
    }
    void OnGUI()
    {

            float val = Input.GetAxis("Mouse ScrollWheel");
            if (val > 0.0f)
            {
              //ここにマウスエィールアップした時の処理
                _gameObject.transform.localScale += new Vector3(0.01f, 0.01f, 0);
                Debug.Log("up");
            }
            else if (val < 0.0f)
            {
              //ここにマウスエィールダウンした時の処理
              _gameObject.transform.localScale -= new Vector3(0.01f, 0.01f, 0);
                Debug.Log("down");
            }
            else
            {
                // do nothing
            }


    }
}

 

デモ

コンソールで確認できるように、Debug.Logでupは表示されますが、
スケール値は2以上、0.5以下にはいきません。
以上範囲指定関数Mathf.Clampの使い方でした。

Unityの勉強方法はこちら

Unityのスクールはこちら

エンジニアスクール

Follow me!

  • カツヤ
  • 世界放浪系ゲームディベロッパー

    Unityでゲーム開発。VR/ARの開発をしています。

    クリエイターとして常に面白い物を。好奇心旺盛に生きる事がモットーです。

    法政大学卒業→ドイツ留学→ゲーム開発会社勤務→フリーランス
    アプリリリース合計6本。