using System;
using Unity.Simulation;
namespace UnityEngine.Experimental.Perception.Randomization.Scenarios
{
///
/// Defines a scenario that is compatible with the Run in Unity Simulation window
///
/// The type of constants to serialize
public abstract class UnitySimulationScenario : Scenario where T : UnitySimulationScenarioConstants, new()
{
///
public sealed override bool isScenarioComplete => currentIteration >= constants.totalIterations;
///
protected sealed override void IncrementIteration()
{
currentIteration += constants.instanceCount;
}
///
public sealed override void DeserializeFromFile(string configFilePath)
{
base.DeserializeFromFile(Configuration.Instance.IsSimulationRunningInCloud()
? new Uri(Configuration.Instance.SimulationConfig.app_param_uri).LocalPath
: configFilePath);
currentIteration = constants.instanceIndex;
}
}
}