コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Resources.Loadを綺麗に記述するためのラッパークラス

概要

// キャラクターのプレハブを読み込む
var characterPrefab = Resources.Load(
    "Prefabs/Character", 
    typeof(GameObject)) as GameObject;

Resources.Loadをそのまま使用してリソースを読み込む場合
typeofを書かなければいけなかったり
typeofとキャストで型の指定が重複したりして少し冗長な構文になります

そこで、下記のようなクラスを作ると

/// <summary>
/// Resourcesクラスに関する汎用クラス
/// </summary>
public static partial class ResourcesCommon
{
    /// <summary>
    /// リソースを読み込みます
    /// </summary>
    /// <typeparam name="T">リソースの型</typeparam>
    /// <param name="path">リソースのファイルパス</param>
    /// <returns>読み込んだリソース</returns>
    public static T Load<T>(string path) where T : Object
    {
        return Resources.Load(path, typeof(T)) as T;
    }
}
// キャラクターのプレハブを読み込む
var characterPrefab = ResourcesCommon.Load<GameObject>("Prefabs/Character");

typeofの記述や型指定の重複がなくなるので綺麗に書けます

ソースコード