- Handle ScriptableObject for CAFU v3
- CAFU Core v3
- Zenject
yarn add "umm/cafu_scriptableobject#^1.0.0"
using CAFU.ScriptableObject.Structure;
using ScriptableObjectSample.Application.Enumerate;
using UnityEngine;
namespace ScriptableObjectSample
{
[CreateAssetMenu(menuName = "Master/Avatar")]
public class Avatar : KeyValueScriptableObject<AvatarType, Sprite>
{
}
}
Project
view にて上記例だとCreate > Master > AvaterFace
Project
view にてInstaller > ScriptableObjectInstaller
Scriptable Object List
に生成したScriptableObjectを設定する
- ScriptableObjectを読み込みたいSceneの任意のGameObjectに
SceneContext
をアタッチする SceneContext
のScriptable Object Installer
に生成したScriptableObjectInstaller
を指定する
using System.Linq;
using CAFU.Core;
using CAFUScriptableObject.Scripts.Domain.UseCase.Interface;
using Zenject;
namespace ScriptableObjectSample
{
public class AvatarTranslator : ITranslator<AvatarType, IAvatarStructure>
{
[Inject] private IScriptableObjectRepository ScriptableObjectRepository { get; set; }
public IAvatarStructure Translate(AvatarType type)
{
return
new AvatarStructure(
ScriptableObjectRepository.GetList<Avatar>().First(x => x.Key == type).Value
);
}
}
}
Copyright (c) 2018 Tetsuya Mori
Released under the MIT license, see LICENSE.txt