【Unity】プロパティを使って情報の値に制約をつける
UnityでのC#のクラスから作成されたインスタンスへのアクセスのついてみていきましょう
基本のコード
public class Character
{
private int _chracterLevel;
public int CharacterLevel
{
get
{
return _chracterLevel;
}
set
{
_chracterLevel = MathF.Clamp(value, 1, 99);
}
}
}
Unityでのサンプル
UnityプロジェクトでこのCharacter
クラスを使用するための基本ステップを説明します。このクラスは、キャラクターのレベルを管理するために使用され、レベルが1から99の範囲に制限されるようにします。MathF.Clamp
メソッドを使って、設定しようとする値が指定された範囲内に収まるようにしています。
- 新しいC#スクリプトの作成: Unityエディタで新しいC#スクリプトを作成します。このコンテキストでは
CharacterLevelManager
という名前を推奨します。 - スクリプトの編集: 作成したスクリプトをダブルクリックし、コードエディタで開きます。
- コードの追加: 以下のサンプルコードをスクリプトに追加または編集します。
Character
クラスを先に定義し、その後でUnityのMonoBehaviour
を使用した例を示します。
using System;
using UnityEngine;
[Serializable]
public class Character
{
[SerializeField]
private int _characterLevel;
public int CharacterLevel
{
get
{
return _characterLevel;
}
set
{
_characterLevel = Mathf.Clamp(value, 1, 99);
}
}
}
public class CharacterLevelManager : MonoBehaviour
{
[SerializeField]
private Character character;
void Start()
{
character.CharacterLevel = 0; // Clampをテストする
Debug.Log("Character Level: " + character.CharacterLevel); // 1が出力されるべき
character.CharacterLevel = 100; // Clampをテストする
Debug.Log("Character Level: " + character.CharacterLevel); // 99が出力されるべき
}
}
- Unityエディタに戻る: Unityエディタに戻り、このスクリプトをゲームオブジェクトにアタッチします。
- プレイしてテスト: Unityエディタのプレイボタンをクリックしてゲームを開始し、コンソールウィンドウでログが期待通りに表示されるかを確認します。
このサンプルでは、キャラクターのレベルが自動的に1と99の間に制限されることを確認できます。Character
クラスは非常に基本的な形ですが、ゲーム開発におけるデータカプセル化とプロパティの使用方法を示しています。このようなシステムは、ゲーム内のキャラクターやオブジェクトの属性を管理するのに役立ち、より複雑なロジックやゲームメカニクスに拡張する基盤となります。
ディスカッション
コメント一覧
まだ、コメントがありません