private void Awake() { World = new World(new Vector2(0, -10)); // Define the gravity vector. DebugDrawer = DebugDrawer.GetDrawer(); WorldDrawer = new BoxDrawer { Drawer = DebugDrawer }; World.SetDebugDrawer(WorldDrawer); Logger.SetLogger(new UnityLogger()); }
private void Awake() { if (!Dropdown) { throw new NullReferenceException("Test dropdown not found"); } if (!RestartButton) { throw new NullReferenceException("Restart button not found"); } _testTypes = typeof(TestBase).Assembly.GetTypes().Where(e => e.BaseType == typeof(TestBase)).ToArray(); Settings = gameObject.GetComponent <TestSettings>() ?? gameObject.AddComponent <TestSettings>(); Settings.DebugDrawer = DebugDrawer.GetDrawer(); Settings.WorldDrawer = new BoxDrawer { Drawer = Settings.DebugDrawer }; Dropdown.ClearOptions(); Dropdown.AddOptions(_testTypes.Select(e => e.Name).ToList()); Dropdown.onValueChanged.AddListener(OnTestSelect); RestartButton.onClick.AddListener(Restart); foreach (var toggleField in typeof(TestSettings) .GetFields() .Where(f => f.GetCustomAttribute <ToggleAttribute>() != null)) { var toggleName = $"Canvas/{toggleField.Name}"; var toggleObject = GameObject.Find(toggleName) ?? throw new NullReferenceException($"{toggleName} not found"); var toggle = toggleObject.GetComponent <Toggle>(); toggle.isOn = (bool)toggleField.GetValue(Settings); toggle.onValueChanged.AddListener( value => { toggleField.SetValue(Settings, value); }); } }