VContainer-registering/register-scriptable-object | 注册——注册 ScriptableObject
将游戏配置信息保存为 ScriptableObject 资源时,可按以下方式注册:
[Serializable]
public class CameraSettings
{
public float MoveSpeed = 10f;
public float DefaultDistance = 5f;
public float ZoomMax = 20f;
public float ZoomMin = 5f;
}
[Serializable]
public class ActorSettings
{
public float MoveSpeed = 0.5f;
public float FlyingTime = 2f;
public Vector3 FlyingInitialVelocity = Vector3.zero;
}
[CreateAssetMenu(fileName = "GameSettings", menuName = "MyGame/Settings")]
public class GameSettings : ScriptableObject
{
[SerializeField]
public CameraSettings cameraSetting;
[SerializeField]
public ActorSettings actorSettings;
}
操作步骤:
- 通过菜单创建
GameSettings(ScriptableObject) assets 。 - 在
LifetimeScope注册创建的 assets。
public class SomeLifetimeScope : LifetimeScope
{
[SerializeField]
GameSettings settings;
protected override void Configure(IContainerBuilder builder)
{
builder.RegisterInstance(settings.cameraSettings);
builder.RegisterInstance(settings.actorSettings);
}
}

浙公网安备 33010602011771号