public GameObject Instantiate(GameObjectQuerySystem goqs) { Dictionary <ulong, GameObject> prefabIDToGO = new Dictionary <ulong, GameObject>(); foreach (SerializedGameObject sgo in GameObjects) { GameObject go = new GameObject(sgo.Name); go.Transform.LocalPosition = sgo.Transform.LocalPosition; go.Transform.LocalRotation = sgo.Transform.LocalRotation; go.Transform.LocalScale = sgo.Transform.LocalScale; foreach (var component in sgo.Components) { go.AddComponent(component); } prefabIDToGO.Add(sgo.ID, go); } foreach (SerializedGameObject sgo in GameObjects) { GameObject go = prefabIDToGO[sgo.ID]; ulong parentOriginalID = sgo.Transform.ParentID; if (parentOriginalID != 0) { go.Transform.Parent = prefabIDToGO[parentOriginalID].Transform; } } return(prefabIDToGO[GameObjects.First().ID]); }
protected override void Start(SystemRegistry registry) { _levelLoadTrigger = GameObject.GetComponent <LevelLoadTrigger>(); _levelLoadTrigger.LevelLoadTriggered += OnLevelLoadTriggered; _goqs = registry.GetSystem <GameObjectQuerySystem>(); _sls = registry.GetSystem <SceneLoaderSystem>(); }
protected override void Start(SystemRegistry registry) { _input = registry.GetSystem <InputSystem>(); _goqs = registry.GetSystem <GameObjectQuerySystem>(); _gs = registry.GetSystem <GraphicsSystem>(); _physics = registry.GetSystem <PhysicsSystem>(); _ball = _goqs.FindByName(BallName); if (_ball == null) { throw new InvalidOperationException("No Ball found in scene with name " + BallName); } _ballCollider = _ball.GetComponent <Collider>(); _ballState = _ball.GetComponent <BallState>(); }
protected override void Attached(SystemRegistry registry) { _collider = GameObject.GetComponent <Collider>(); _goqs = registry.GetSystem <GameObjectQuerySystem>(); }
protected override void Attached(SystemRegistry registry) { _goqs = registry.GetSystem <GameObjectQuerySystem>(); }
public PrefabAssetHandler(GameObjectQuerySystem goqs, EditorSystem es) { _goqs = goqs; _es = es; }
protected override void Start(SystemRegistry registry) { if (SkipCinematicCamera) { SkipCinematicCamera = false; Enabled = false; GameObject.RemoveComponent(this); return; } _input = registry.GetSystem <InputSystem>(); GameObjectQuerySystem goqs = registry.GetSystem <GameObjectQuerySystem>(); if (ExtraDisabledGameObjectNames != null) { _extraDisabledGameObjects = ExtraDisabledGameObjectNames.Select(name => goqs.FindByName(name)).ToArray(); } else { _extraDisabledGameObjects = Array.Empty <GameObject>(); } foreach (var go in _extraDisabledGameObjects) { go.Enabled = false; } GameObject ball = goqs.FindByName(BallName); _cameraGO = goqs.FindByName(PlayerCameraName); BallController bc = _cameraGO.GetComponent <BallController>(); bc.Enabled = false; bc.GetEffectiveCameraTransform( ball.Transform.Position, registry.GetSystem <PhysicsSystem>().Space.ForceUpdater.Gravity, out _finalPosition, out _finalRotation); GameObject waypointParentGo = goqs.FindByName(WaypointParentName); var wps = waypointParentGo.Transform.Children.Select(t => t.GameObject.GetComponent <CinematicCameraWaypoint>()) .OrderBy(ccw => ccw.Time).Select(ccw => ccw.GetWaypointInfo()); _initialPosition = Transform.Position; _initialRotation = Transform.Rotation; float lastWaypointTime = wps.Last().Time; if (RestAtCameraPositionTime != -1f && lastWaypointTime > RestAtCameraPositionTime) { throw new InvalidOperationException( "Cannot rest at camera at time " + RestAtCameraPositionTime + ". The last waypoint has time " + lastWaypointTime); } else if (RestAtCameraPositionTime == -1f) { _endTime = lastWaypointTime; } else { _endTime = RestAtCameraPositionTime; } WaypointInfo cameraRestWP = new WaypointInfo(RestAtCameraPositionTime, _finalPosition, _finalRotation); _waypoints = wps.Append(cameraRestWP).ToArray(); while (_waypoints[_currentWaypointIndex].Time == 0) { _initialPosition = _waypoints[_currentWaypointIndex].Position; _initialRotation = _waypoints[_currentWaypointIndex].Rotation; _currentWaypointIndex += 1; } _positionCurve = new CardinalSpline3D(); _positionCurve.Tension = 0.1f; _positionCurve.PreLoop = CurveEndpointBehavior.Clamp; _positionCurve.PostLoop = CurveEndpointBehavior.Clamp; _lookDirCurve = new QuaternionSlerpCurve(); _lookDirCurve.PreLoop = CurveEndpointBehavior.Clamp; _lookDirCurve.PostLoop = CurveEndpointBehavior.Clamp; if (_waypoints.Any()) { WaypointInfo firstWP = _waypoints.First(); _positionCurve.ControlPoints.Add(firstWP.Time, firstWP.Position); _lookDirCurve.ControlPoints.Add(firstWP.Time, firstWP.Rotation); } foreach (var waypoint in _waypoints) { _positionCurve.ControlPoints.Add(waypoint.Time, waypoint.Position); _lookDirCurve.ControlPoints.Add(waypoint.Time, waypoint.Rotation); } if (_waypoints.Any()) { WaypointInfo lastWP = _waypoints.Last(); _positionCurve.ControlPoints.Add(lastWP.Time, lastWP.Position); _lookDirCurve.ControlPoints.Add(lastWP.Time, lastWP.Rotation); } }
public EditorSceneLoaderSystem(Game game, GameObjectQuerySystem goqs) : base(game, goqs) { }