public override bool Convert(ConvertOperation convert) { bool finishConvertOp = false; if (convert.Data.ContainsGameObjectRefs()) { GameObject[] draggedObjArray = convert.Data.GetGameObjectRefs(); // Filter out GameObjects that are children of others draggedObjArray = draggedObjArray.Where(o => !draggedObjArray.Any(o2 => o.IsChildOf(o2))).ToArray(); // Generate Prefabs foreach (GameObject draggedObj in draggedObjArray) { if (convert.IsObjectHandled(draggedObj)) continue; // Create Prefab Prefab prefab = new Prefab(draggedObj); // Add a name hint that may be used as indicator to select a Resource name later prefab.AssetInfo = new AssetInfo(); prefab.AssetInfo.NameHint = draggedObj.Name; // Mark GameObject as handled convert.MarkObjectHandled(draggedObj); convert.AddResult(prefab); finishConvertOp = true; } } return finishConvertOp; }
public void When_a_non_script_resource_is_deleted_Then_dont_run() { var logCountBeforeRunning = Log.LogData.Data.Count(); var resource = new Prefab(); resource.Save("test.prefab.res"); var eventArgs = new ResourceEventArgs("test.prefab.res"); _scriptResourceEvents.OnResourceDeleting(this, eventArgs); Assert.AreEqual(logCountBeforeRunning, Log.LogData.Data.Count()); }
public void OnInit(Component.InitContext context) { // 1. Retrieve ContentRef<Prefab> blockPrefabReference = GameRes.Data.Block_Prefab; blockPrefab = blockPrefabReference.Res; }
private void ActionPrefabOpenRes(Prefab prefab) { try { CreateGameObjectAction undoRedoAction = new CreateGameObjectAction(null, prefab.Instantiate()); UndoRedoManager.Do(undoRedoAction); DualityEditorApp.Select(this, new ObjectSelection(undoRedoAction.Result)); } catch (Exception exception) { Log.Editor.WriteError("An error occurred instanciating Prefab {1}: {0}", Log.Exception(exception), prefab != null ? prefab.Path : "null"); } }
public void When_a_non_script_resource_is_renamed_Then_dont_throw() { var resource = new Prefab(); resource.Save("test.prefab.res"); var eventArgs = new ResourceRenamedEventArgs("test2.prefab.res", "test.prefab.res"); Assert.DoesNotThrow(() => _scriptResourceEvents.OnResourceRenamed(this, eventArgs)); }