public static void SpawnObject(int objectId) { if (objectId == 0) { return; } ProjectData.ObjectsAreChanged = true; var transforms = new Dictionary <int, TransformDT>(); GameObject gameObject = GameStateData.GetPrefabGameObject(objectId); int id = gameObject.GetComponent <ObjectId>().Id; transforms.Add(id, _spawnView.transform.ToTransformDT()); SpawnInitParams param = new SpawnInitParams { IdObject = objectId, IdLocation = ProjectData.SceneId, Transforms = transforms }; if (ParentManager.Instance != null && ParentManager.Instance.ParentCommand == ParentCommand.SetNew) { param.ParentId = ParentManager.Instance.GetSelectedParent().Id; } ICommand command = new SpawnCommand(param); command.Execute(); }
/// <summary> /// Spawn object with full defined transform /// </summary> /// <param name="objectId">Object Id</param> /// <param name="targetTransform">Transform which define object's position, rotation and scale</param> public void SpawnObject(int objectId, Transform targetTransform) { if (objectId == 0) { return; } ProjectData.ObjectsAreChanged = true; var transforms = new Dictionary <int, TransformDT>(); var prefabGo = GameStateData.GetPrefabGameObject(objectId); var rootId = prefabGo.GetComponent <ObjectId>().Id; var rootTransform = targetTransform.ToTransformDT(); transforms.Add(rootId, rootTransform); var spawnParams = new SpawnInitParams() { IdObject = objectId, IdLocation = ProjectData.SceneId, Transforms = transforms }; if (ParentManager.Instance != null && ParentManager.Instance.ParentCommand == ParentCommand.SetNew) { spawnParams.ParentId = ParentManager.Instance.GetSelectedParent().Id; } ICommand command = new SpawnCommand(spawnParams); command.Execute(); }
/// <summary> /// Spawn object in position /// </summary> /// <param name="objectId">Object Id</param> /// <param name="position">Object's spawn position</param> public void SpawnObject(int objectId, Vector3 position) { if (objectId == 0) { return; } ProjectData.ObjectsAreChanged = true; var transforms = new Dictionary <int, TransformDT>(); var prefabGo = GameStateData.GetPrefabGameObject(objectId); var rootId = prefabGo.GetComponent <ObjectId>().Id; var rootTransform = new TransformDT() { PositionDT = new Vector3DT(position), RotationDT = new QuaternionDT(Quaternion.identity), ScaleDT = new Vector3DT(Vector3.one) }; transforms.Add(rootId, rootTransform); var spawnParams = new SpawnInitParams() { IdObject = objectId, IdLocation = ProjectData.SceneId, Transforms = transforms }; if (ParentManager.Instance != null && ParentManager.Instance.ParentCommand == ParentCommand.SetNew) { spawnParams.ParentId = ParentManager.Instance.GetSelectedParent().Id; } ICommand command = new SpawnCommand(spawnParams); command.Execute(); }