From 894b644bc1e4e5a597aa07d741fb391acac1edae Mon Sep 17 00:00:00 2001 From: mackierx111 Date: Wed, 14 Jun 2023 02:47:09 +0900 Subject: [PATCH 1/2] Implemented AutowareSimulation.cs --- .../Scenes/Main/AutowareSimulation.unity | 124 +++++++++++------- .../Scripts/RandomTraffic/TrafficManager.cs | 2 +- Assets/AutowareSimulation.cs | 53 ++++++++ Assets/AutowareSimulation.cs.meta | 11 ++ Assets/CommandLineUtility.cs | 73 +++++++++++ Assets/CommandLineUtility.cs.meta | 11 ++ 6 files changed, 225 insertions(+), 49 deletions(-) create mode 100644 Assets/AutowareSimulation.cs create mode 100644 Assets/AutowareSimulation.cs.meta create mode 100644 Assets/CommandLineUtility.cs create mode 100644 Assets/CommandLineUtility.cs.meta diff --git a/Assets/AWSIM/Scenes/Main/AutowareSimulation.unity b/Assets/AWSIM/Scenes/Main/AutowareSimulation.unity index b7e09de6b..111d17a99 100644 --- a/Assets/AWSIM/Scenes/Main/AutowareSimulation.unity +++ b/Assets/AWSIM/Scenes/Main/AutowareSimulation.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_IndirectSpecularColor: {r: 1536.168, g: 1903.334, b: 2519.2246, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -481,6 +481,7 @@ GameObject: m_Component: - component: {fileID: 543989980} - component: {fileID: 543989981} + - component: {fileID: 543989982} m_Layer: 0 m_Name: AutowareSimulation m_TagString: Untagged @@ -519,6 +520,22 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: meshSource: 2 +--- !u!114 &543989982 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 543989979} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cbff45cdd7c84db439f1a4e2e2e66844, type: 3} + m_Name: + m_EditorClassIdentifier: + trafficManager: {fileID: 723377035} + commandLineConfigParam: --json_path + useJsonConfig: 0 + jsonPath: --- !u!114 &553355659 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 9027057600446549292, guid: 58d73df60b244d146bdf5f5896f78355, type: 3} @@ -689,6 +706,17 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 830ab73cebda3db4580ebd3ece935931, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &723377035 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 445656315769820269, guid: 58d73df60b244d146bdf5f5896f78355, type: 3} + m_PrefabInstance: {fileID: 813212876} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0004da06b69044905bc1db0ab38531a0, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &797679383 GameObject: m_ObjectHideFlags: 0 @@ -3991,53 +4019,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 23c1ce4fb46143f46bc5cb5224c934f6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 7 - m_ObsoleteRenderingPath: 0 - m_ObsoleteFrameSettings: - overrides: 0 - enableShadow: 0 - enableContactShadows: 0 - enableShadowMask: 0 - enableSSR: 0 - enableSSAO: 0 - enableSubsurfaceScattering: 0 - enableTransmission: 0 - enableAtmosphericScattering: 0 - enableVolumetrics: 0 - enableReprojectionForVolumetrics: 0 - enableLightLayers: 0 - enableExposureControl: 1 - diffuseGlobalDimmer: 0 - specularGlobalDimmer: 0 - shaderLitMode: 0 - enableDepthPrepassWithDeferredRendering: 0 - enableTransparentPrepass: 0 - enableMotionVectors: 0 - enableObjectMotionVectors: 0 - enableDecals: 0 - enableRoughRefraction: 0 - enableTransparentPostpass: 0 - enableDistortion: 0 - enablePostprocess: 0 - enableOpaqueObjects: 0 - enableTransparentObjects: 0 - enableRealtimePlanarReflection: 0 - enableMSAA: 0 - enableAsyncCompute: 0 - runLightListAsync: 0 - runSSRAsync: 0 - runSSAOAsync: 0 - runContactShadowsAsync: 0 - runVolumeVoxelizationAsync: 0 - lightLoopSettings: - overrides: 0 - enableDeferredTileAndCluster: 0 - enableComputeLightEvaluation: 0 - enableComputeLightVariants: 0 - enableComputeMaterialVariants: 0 - enableFptlForForwardOpaque: 0 - enableBigTilePrepass: 0 - isFptlEnabled: 0 clearColorMode: 0 backgroundColorHDR: {r: 0.025, g: 0.07, b: 0.19, a: 0} clearDepth: 1 @@ -4093,6 +4074,53 @@ MonoBehaviour: data1: 0 data2: 0 defaultFrameSettings: 0 + m_Version: 7 + m_ObsoleteRenderingPath: 0 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 --- !u!81 &2122627085 AudioListener: m_ObjectHideFlags: 0 diff --git a/Assets/AWSIM/Scripts/RandomTraffic/TrafficManager.cs b/Assets/AWSIM/Scripts/RandomTraffic/TrafficManager.cs index 75e952ac2..df0b51a74 100644 --- a/Assets/AWSIM/Scripts/RandomTraffic/TrafficManager.cs +++ b/Assets/AWSIM/Scripts/RandomTraffic/TrafficManager.cs @@ -11,7 +11,7 @@ namespace AWSIM.TrafficSimulation public class TrafficManager : MonoBehaviour { [SerializeField, Tooltip("Seed value for random generator.")] - private int seed; + public int seed; [Header("NPC Vehicle Settings")] [SerializeField] private NPCVehicleConfig vehicleConfig = NPCVehicleConfig.Default(); diff --git a/Assets/AutowareSimulation.cs b/Assets/AutowareSimulation.cs new file mode 100644 index 000000000..a7c000427 --- /dev/null +++ b/Assets/AutowareSimulation.cs @@ -0,0 +1,53 @@ +using UnityEngine; +using System; +using AWSIM.TrafficSimulation; + +namespace AWSIM +{ + /// + /// Script for Scene. By Scirpt-Execution-Order, This class is called earlier than other MonoBehaviour. + /// Enables configuration at scene startup. + /// + public class AutowareSimulation : MonoBehaviour + { + [SerializeField] TrafficManager trafficManager; + + [Header("Player Config")] + [SerializeField] string commandLineConfigParam = "--json_path"; + + [Header("Editor Debug")] + [SerializeField] bool useJsonConfig; + + [Tooltip("Specify this Path if you want to debug Json loading at Unity Editor runtime.")] + [SerializeField] string jsonPath; + + [Serializable] + public class Configuration + { + public float TimeScale; // Reflected in Time.timeScale + public int RandomTrafficSeed; // Reflected in TrafficManager.seed + public int MaxVehicleCount; // Reflected in TrafficManager.maxVehicleCount + } + + void Awake() + { + +#if !UNITY_EDITOR + // initialize + useJsonConfig = false; + jsonPath = ""; + + // For player, if path is not specified as a command line argument, json is not read. + useJsonConfig = CommandLineUtility.GetCommandLineArg(out jsonPath, commandLineConfigParam); +#endif + + if (useJsonConfig) + { + var config = CommandLineUtility.LoadJsonFromPath(jsonPath); + Time.timeScale = config.TimeScale; + trafficManager.seed = config.RandomTrafficSeed; + trafficManager.maxVehicleCount = config.MaxVehicleCount; + } + } + } +} \ No newline at end of file diff --git a/Assets/AutowareSimulation.cs.meta b/Assets/AutowareSimulation.cs.meta new file mode 100644 index 000000000..b32d3e1a0 --- /dev/null +++ b/Assets/AutowareSimulation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cbff45cdd7c84db439f1a4e2e2e66844 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: -20 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/CommandLineUtility.cs b/Assets/CommandLineUtility.cs new file mode 100644 index 000000000..9efc68757 --- /dev/null +++ b/Assets/CommandLineUtility.cs @@ -0,0 +1,73 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.IO; +using System; + +namespace AWSIM +{ + /// + /// Convenience static class for command line. + /// + public static class CommandLineUtility + { + /// + /// Get instance from Json by specifying Path. + /// + /// Class to be converted from json. + /// Path where Json is located. + /// + public static T LoadJsonFromPath(string path) + { + try + { + string rawContent = File.ReadAllText(path); + T content = JsonUtility.FromJson(rawContent); + return content; + } + catch (Exception exceptipn) + { + Debug.LogError(exceptipn.Message); + return default; + } + } + + /// + /// Get the corresponding command line argument. + /// + /// Parameter + /// + public static string GetCommandLineArg(string param) + { + var cmdArgs = System.Environment.GetCommandLineArgs(); + for (int i = 0; i < cmdArgs.Length; i++) + { + if (cmdArgs[i] == param && cmdArgs.Length > i + 1) + { + return cmdArgs[i + 1]; + } + } + + return null; + } + + /// + /// Get the corresponding command line argument. + /// + /// Argument + /// Parameter + /// + public static bool GetCommandLineArg(out string arg, string param) + { + var _arg = GetCommandLineArg(param); + if (_arg != null) + { + arg = _arg; + return true; + } + + arg = ""; + return false; + } + } +} \ No newline at end of file diff --git a/Assets/CommandLineUtility.cs.meta b/Assets/CommandLineUtility.cs.meta new file mode 100644 index 000000000..404bed3d6 --- /dev/null +++ b/Assets/CommandLineUtility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fdc3ddf30bc92814a939d85412fe6f9d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From be7fb32bff4f1028b4846f048720f2cae1225761 Mon Sep 17 00:00:00 2001 From: mackierx111 Date: Wed, 14 Jun 2023 13:33:53 +0900 Subject: [PATCH 2/2] change dir --- Assets/AWSIM/Scenes/Main/AutowareSimualtion.meta | 8 ++++++++ .../Scenes/Main/AutowareSimualtion}/AutowareSimulation.cs | 0 .../Main/AutowareSimualtion}/AutowareSimulation.cs.meta | 0 .../{ => AutowareSimualtion}/AutowareSimulation.unity | 0 .../AutowareSimulation.unity.meta | 0 Assets/AWSIM/Scenes/Main/AutowareSimualtion/config.json | 5 +++++ .../AWSIM/Scenes/Main/AutowareSimualtion/config.json.meta | 7 +++++++ .../{ => AWSIM/Scripts/Utilities}/CommandLineUtility.cs | 0 .../Scripts/Utilities}/CommandLineUtility.cs.meta | 0 9 files changed, 20 insertions(+) create mode 100644 Assets/AWSIM/Scenes/Main/AutowareSimualtion.meta rename Assets/{ => AWSIM/Scenes/Main/AutowareSimualtion}/AutowareSimulation.cs (100%) rename Assets/{ => AWSIM/Scenes/Main/AutowareSimualtion}/AutowareSimulation.cs.meta (100%) rename Assets/AWSIM/Scenes/Main/{ => AutowareSimualtion}/AutowareSimulation.unity (100%) rename Assets/AWSIM/Scenes/Main/{ => AutowareSimualtion}/AutowareSimulation.unity.meta (100%) create mode 100644 Assets/AWSIM/Scenes/Main/AutowareSimualtion/config.json create mode 100644 Assets/AWSIM/Scenes/Main/AutowareSimualtion/config.json.meta rename Assets/{ => AWSIM/Scripts/Utilities}/CommandLineUtility.cs (100%) rename Assets/{ => AWSIM/Scripts/Utilities}/CommandLineUtility.cs.meta (100%) diff --git a/Assets/AWSIM/Scenes/Main/AutowareSimualtion.meta b/Assets/AWSIM/Scenes/Main/AutowareSimualtion.meta new file mode 100644 index 000000000..75fe75ccc --- /dev/null +++ b/Assets/AWSIM/Scenes/Main/AutowareSimualtion.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b67d5fa4ba3a8dd4980e73b860cf7f13 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AutowareSimulation.cs b/Assets/AWSIM/Scenes/Main/AutowareSimualtion/AutowareSimulation.cs similarity index 100% rename from Assets/AutowareSimulation.cs rename to Assets/AWSIM/Scenes/Main/AutowareSimualtion/AutowareSimulation.cs diff --git a/Assets/AutowareSimulation.cs.meta b/Assets/AWSIM/Scenes/Main/AutowareSimualtion/AutowareSimulation.cs.meta similarity index 100% rename from Assets/AutowareSimulation.cs.meta rename to Assets/AWSIM/Scenes/Main/AutowareSimualtion/AutowareSimulation.cs.meta diff --git a/Assets/AWSIM/Scenes/Main/AutowareSimulation.unity b/Assets/AWSIM/Scenes/Main/AutowareSimualtion/AutowareSimulation.unity similarity index 100% rename from Assets/AWSIM/Scenes/Main/AutowareSimulation.unity rename to Assets/AWSIM/Scenes/Main/AutowareSimualtion/AutowareSimulation.unity diff --git a/Assets/AWSIM/Scenes/Main/AutowareSimulation.unity.meta b/Assets/AWSIM/Scenes/Main/AutowareSimualtion/AutowareSimulation.unity.meta similarity index 100% rename from Assets/AWSIM/Scenes/Main/AutowareSimulation.unity.meta rename to Assets/AWSIM/Scenes/Main/AutowareSimualtion/AutowareSimulation.unity.meta diff --git a/Assets/AWSIM/Scenes/Main/AutowareSimualtion/config.json b/Assets/AWSIM/Scenes/Main/AutowareSimualtion/config.json new file mode 100644 index 000000000..3cbf9adba --- /dev/null +++ b/Assets/AWSIM/Scenes/Main/AutowareSimualtion/config.json @@ -0,0 +1,5 @@ +{ + "TimeScale": 0.2, + "RandomTrafficSeed": 33, + "MaxVehicleCount": 2 +} \ No newline at end of file diff --git a/Assets/AWSIM/Scenes/Main/AutowareSimualtion/config.json.meta b/Assets/AWSIM/Scenes/Main/AutowareSimualtion/config.json.meta new file mode 100644 index 000000000..704d50cb6 --- /dev/null +++ b/Assets/AWSIM/Scenes/Main/AutowareSimualtion/config.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f1c45908b6bd54e4f8973fce6f03a263 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/CommandLineUtility.cs b/Assets/AWSIM/Scripts/Utilities/CommandLineUtility.cs similarity index 100% rename from Assets/CommandLineUtility.cs rename to Assets/AWSIM/Scripts/Utilities/CommandLineUtility.cs diff --git a/Assets/CommandLineUtility.cs.meta b/Assets/AWSIM/Scripts/Utilities/CommandLineUtility.cs.meta similarity index 100% rename from Assets/CommandLineUtility.cs.meta rename to Assets/AWSIM/Scripts/Utilities/CommandLineUtility.cs.meta