protected override object WriteToImpl(object obj) { ClearReferencesCache(); Scene scene = (Scene)obj; if (Descriptors == null && Data == null) { DestroyGameObjects(scene); return(obj); } if (Descriptors == null && Data != null || Data != null && Descriptors == null) { throw new ArgumentException("data is corrupted", "scene"); } if (Descriptors.Length == 0) { DestroyGameObjects(scene); return(obj); } if (Identifiers == null || Identifiers.Length != Data.Length) { throw new ArgumentException("data is corrupted", "scene"); } DestroyGameObjects(scene); Dictionary <int, UnityObject> idToUnityObj = new Dictionary <int, UnityObject>(); for (int i = 0; i < Descriptors.Length; ++i) { PersistentDescriptor descriptor = Descriptors[i]; if (descriptor != null) { CreateGameObjectWithComponents(m_typeMap, descriptor, idToUnityObj, null); } } UnityObject[] assetInstances = null; if (AssetIdentifiers != null) { IUnityObjectFactory factory = IOC.Resolve <IUnityObjectFactory>(); assetInstances = new UnityObject[AssetIdentifiers.Length]; for (int i = 0; i < AssetIdentifiers.Length; ++i) { PersistentObject asset = Assets[i]; Type uoType = m_typeMap.ToUnityType(asset.GetType()); if (uoType != null) { if (factory.CanCreateInstance(uoType, asset)) { UnityObject assetInstance = factory.CreateInstance(uoType, asset); if (assetInstance != null) { assetInstances[i] = assetInstance; idToUnityObj.Add(AssetIdentifiers[i], assetInstance); } } else { Debug.LogWarning("Unable to create object of type " + uoType.ToString()); } } else { Debug.LogWarning("Unable to resolve unity type for " + asset.GetType().FullName); } } } m_assetDB.RegisterSceneObjects(idToUnityObj); if (assetInstances != null) { for (int i = 0; i < AssetIdentifiers.Length; ++i) { UnityObject assetInstance = assetInstances[i]; if (assetInstance != null) { PersistentObject asset = Assets[i]; asset.WriteTo(assetInstance); } } } RestoreDataAndResolveDependencies(); m_assetDB.UnregisterSceneObjects(); ClearReferencesCache(); return(scene); }
protected PersistentSurrogate() { m_assetDB = IOC.Resolve <IAssetDB>(); }
private void Start() { BaseGizmoInput input = GetComponent <BaseGizmoInput>(); if (input == null || input.Gizmo != this) { input = gameObject.AddComponent <BaseGizmoInput>(); input.Gizmo = this; } if (SceneCamera == null) { SceneCamera = Window.Camera; } if (SceneCamera == null) { SceneCamera = Camera.main; } if (Target == null) { Target = transform; } if (EnableUndo) { if (!RuntimeUndoInput.IsInitialized) { GameObject runtimeUndo = new GameObject(); runtimeUndo.name = "RuntimeUndo"; runtimeUndo.AddComponent <RuntimeUndoInput>(); } } IRTEGraphicsLayer graphicsLayer = Window.IOCContainer.Resolve <IRTEGraphicsLayer>(); if (graphicsLayer != null) { m_rteCamera = graphicsLayer.Camera; } if (m_rteCamera == null && SceneCamera != null) { IRTEGraphics graphics = IOC.Resolve <IRTEGraphics>(); if (graphics != null) { m_rteCamera = graphics.GetOrCreateCamera(SceneCamera, CameraEvent.AfterImageEffectsOpaque); } if (m_rteCamera == null) { m_rteCamera = SceneCamera.gameObject.AddComponent <RTECamera>(); m_rteCamera.Event = CameraEvent.AfterImageEffectsOpaque; } } if (m_rteCamera != null) { m_prevPosition = transform.position; m_prevRotation = transform.rotation; m_prevScale = transform.localScale; m_prevCamPosition = m_rteCamera.Camera.transform.position; m_prevCamRotation = m_rteCamera.Camera.transform.rotation; m_prevOrthographic = m_rteCamera.Camera.orthographic; m_rteCamera.CommandBufferRefresh += OnCommandBufferRefresh; m_rteCamera.RefreshCommandBuffer(); } StartOverride(); }
private void Awake() { m_editor = IOC.Resolve <IRTE>(); UnityEditorToolsListener.ToolChanged += OnUnityEditorToolChanged; }
/// <summary> /// 构造函数 /// </summary> public HeNanK3Job() { log = new LogHelper(); services = IOC.Resolve <IOpen3Code>(); email = IOC.Resolve <IEmail>(); }
protected virtual void Awake() { Subscribe(); m_voidComponentEditor = gameObject.AddComponent <VoidComponentEditor>(); m_editorsMap = IOC.Resolve <IEditorsMap>(); }
private void Start() { m_projectManager = Dependencies.ProjectManager; m_editor = IOC.Resolve <IRTE>(); }
public override void ReadFrom(object obj) { base.ReadFrom(obj); if (obj == null) { return; } Material o = (Material)obj; if (o.HasProperty("_MainTex")) { mainTextureOffset = o.mainTextureOffset; mainTextureScale = o.mainTextureScale; } if (o.shader == null) { shader = m_assetDB.NullID; m_shaderName = null; return; } shader = m_assetDB.ToID(o.shader); m_shaderName = o.shader.name; RuntimeShaderInfo shaderInfo = null; IRuntimeShaderUtil shaderUtil = IOC.Resolve <IRuntimeShaderUtil>(); if (shaderUtil != null) { shaderInfo = shaderUtil.GetShaderInfo(o.shader); } if (shaderInfo == null) { return; } m_propertyNames = new string[shaderInfo.PropertyCount]; m_propertyTypes = new RTShaderPropertyType[shaderInfo.PropertyCount]; m_propertyValues = new PrimitiveContract[shaderInfo.PropertyCount]; for (int i = 0; i < shaderInfo.PropertyCount; ++i) { string name = shaderInfo.PropertyNames[i]; RTShaderPropertyType type = shaderInfo.PropertyTypes[i]; m_propertyNames[i] = name; m_propertyTypes[i] = type; switch (type) { case RTShaderPropertyType.Color: m_propertyValues[i] = PrimitiveContract.Create((PersistentColor)o.GetColor(name)); break; case RTShaderPropertyType.Float: m_propertyValues[i] = PrimitiveContract.Create(o.GetFloat(name)); break; case RTShaderPropertyType.Range: m_propertyValues[i] = PrimitiveContract.Create(o.GetFloat(name)); break; case RTShaderPropertyType.TexEnv: Texture2D texture = (Texture2D)o.GetTexture(name); if (texture == null) { m_propertyValues[i] = PrimitiveContract.Create(m_assetDB.NullID); } else { m_propertyValues[i] = PrimitiveContract.Create(m_assetDB.ToID(texture)); } break; case RTShaderPropertyType.Vector: m_propertyValues[i] = PrimitiveContract.Create((PersistentVector4)o.GetVector(name)); break; case RTShaderPropertyType.Unknown: m_propertyValues[i] = null; break; } } m_keywords = o.shaderKeywords; }
protected override void OnEditorCreated(object obj) { OverrideDefaultLayout(); m_wm = IOC.Resolve <IWindowManager>(); }
public AutoCheckHeBeiPL5Job() { log = new LogHelper(); services = IOC.Resolve <IDTOpenCode>(); }
public AutoCheckGuangDong26X5Job() { log = new LogHelper(); services = IOC.Resolve <IDTOpenCode>(); }
public UnityObjectFactory() { m_typeMap = IOC.Resolve <ITypeMap>(); }
void Awake() { m_globalUI = IOC.Resolve <IGlobalUI>(); }
/// <summary> /// 初始化函数 /// </summary> public HeiLongJiangTC6J1Job() { log = new LogHelper(); services = IOC.Resolve <IDTOpenCode>(); email = IOC.Resolve <IEmail>(); }
public ProjectAsyncOperation <ProjectItem[]> DeleteAssets(ProjectItem[] projectItems, Action <ProjectItem[]> done) { ProjectAsyncOperation <ProjectItem[]> ao = new ProjectAsyncOperation <ProjectItem[]> (); IProject project = IOC.Resolve <IProject>(); AssetItem[] assetItems = projectItems.OfType <AssetItem>().ToArray(); for (int i = 0; i < assetItems.Length; ++i) { AssetItem assetItem = assetItems[i]; UnityObject obj = m_project.FromID <UnityObject>(assetItem.ItemID); if (obj != null) { if (obj is GameObject) { GameObject go = (GameObject)obj; Component[] components = go.GetComponentsInChildren <Component>(true); for (int j = 0; j < components.Length; ++j) { Component component = components[j]; Undo.Erase(component, null); if (component is Transform) { Undo.Erase(component.gameObject, null); } } } else { Undo.Erase(obj, null); } } } ProjectItem[] folders = projectItems.Where(pi => pi.IsFolder).ToArray(); m_project.Delete(assetItems.Union(folders).ToArray(), (deleteError, deletedItems) => { IsBusy = false; if (deleteError.HasError) { m_wm.MessageBox("Unable to delete folders", deleteError.ErrorText); if (done != null) { done(null); } ao.Error = deleteError; ao.IsCompleted = true; return; } StartCoroutine(CoUpdateDependantAssetPreview(assetItems, () => { if (done != null) { done(projectItems); } ao.Error = new Error(); ao.Result = projectItems; ao.IsCompleted = true; })); }); return(ao); }
private void OverrideDefaultLayout() { IWindowManager wm = IOC.Resolve <IWindowManager>(); wm.OverrideDefaultLayout(DefaultLayout, RuntimeWindowType.Scene.ToString()); }
//[MenuCommand("MenuWindow/ID_RTDeformer_WM_Header_Deformer", "", true)] public static void OpenMeshDeformer() { IWindowManager wm = IOC.Resolve <IWindowManager>(); wm.CreateWindow("MeshDeformer"); }
/// <summary> /// 构造函数 /// </summary> public YunNanKL10FJob() { log = new LogHelper(); services = IOC.Resolve <IOpen8Code>(); email = IOC.Resolve <IEmail>(); }
public void AddProperty(RuntimeAnimationProperty property) { if (property.ComponentTypeName == RuntimeAnimationProperty.k_SpecialAddButton) { IWindowManager wm = IOC.Resolve <IWindowManager>(); IAnimationSelectPropertiesDialog selectPropertiesDialog = null; Transform dialogTransform = IOC.Resolve <IWindowManager>().CreateDialogWindow(RuntimeWindowType.SelectAnimationProperties.ToString(), "Select Properties", (sender, args) => { }, (sender, args) => { }, 250, 250, 400, 400); selectPropertiesDialog = IOC.Resolve <IAnimationSelectPropertiesDialog>(); selectPropertiesDialog.View = this; selectPropertiesDialog.Target = Target.gameObject; } else { if (BeforePropertiesAdded != null) { BeforePropertiesAdded(this, EventArgs.Empty); } List <RuntimeAnimationProperty> addedProperties = new List <RuntimeAnimationProperty>(); List <int> addedIndexes = new List <int>(); if (m_propertiesTreeView.ItemsCount == 1) { m_propertiesTreeView.Insert(0, m_emptyTop); m_props.Insert(0, m_emptyTop); addedProperties.Add(m_emptyTop); addedIndexes.Add(0); } property = new RuntimeAnimationProperty(property); property.Parent = null; property.Children = null; if (!property.TryToCreateChildren()) { if (Reflection.IsPrimitive(property.Value.GetType())) { property.Curve = new AnimationCurve(); } } Clip.Add(property); m_propertiesTreeView.Insert(m_propertiesTreeView.ItemsCount - 1, property); addedProperties.Add(property); addedIndexes.Add(m_props.Count - 1); m_props.Insert(m_props.Count - 1, property); if (property.Children != null) { for (int i = 0; i < property.Children.Count; i++) { addedProperties.Add(property.Children[i]); addedIndexes.Add(m_props.Count - 1); m_props.Insert(m_props.Count - 1, property.Children[i]); Subscribe(property.Children[i]); } } else { Subscribe(property); } if (PropertiesAdded != null) { PropertiesAdded(new ItemsArg { Items = addedProperties.ToArray(), Rows = addedIndexes.ToArray() }); } } }
/// <summary> /// 构造函数 /// </summary> public GuangDongSZFCJob() { log = new LogHelper(); services = IOC.Resolve <IDTOpenCode>(); email = IOC.Resolve <IEmail>(); }
protected void Awake() { m_gameMachine = IOC.Resolve <IGameMachine>(); m_player = IOC.Resolve <IPlayer>(); AwakeOverride(); }
private void Awake() { m_terrainEditor = GetComponentInParent <TerrainEditor>(); m_localization = IOC.Resolve <ILocalization>(); m_editor = IOC.Resolve <IRTE>(); m_editor.Selection.SelectionChanged += OnEditorSelectionChanged; m_customSelection = IOC.Resolve <ICustomSelectionComponent>(); m_terrainCutoutRenderer = IOC.Resolve <ITerrainCutoutMaskRenderer>(); m_terrainCutoutRenderer.ObjectImageLayer = m_editor.CameraLayerSettings.ResourcePreviewLayer; m_source = FindObjectOfType <TerrainBrushSource>(); if (m_source == null) { m_source = new GameObject("TerrainBrushSource").AddComponent <TerrainBrushSource>(); } if (m_brushesList != null) { m_brushesList.SelectionChanged += OnBrushesSelectionChanged; m_brushesList.ItemDataBinding += OnBrushesDataBinding; m_brushesList.CanDrag = false; m_brushesList.CanEdit = false; m_brushesList.CanRemove = false; m_brushesList.CanReorder = false; m_brushesList.CanReparent = false; m_brushesList.CanSelectAll = false; m_brushesList.CanUnselectAll = false; } if (m_brushSizeEditor != null) { //BrushSize = 2.5f; RaiseBrushParamsChanged(); m_brushSizeEditor.Min = 0.5f; m_brushSizeEditor.Max = 40; m_brushSizeEditor.Init(this, this, Strong.MemberInfo((TerrainBrushEditor x) => x.BrushSize), null, m_localization.GetString("ID_RTTerrain_TerrainBrushEditor_BrushSize", "Brush Size"), null, null, null, false); } if (m_opacityEditor != null) { //BrushOpacity = 100; RaiseBrushParamsChanged(); m_opacityEditor.Min = 0; m_opacityEditor.Max = 100; m_opacityEditor.Init(this, this, Strong.MemberInfo((TerrainBrushEditor x) => x.BrushOpacity), null, m_localization.GetString("ID_RTTerrain_TerrainBrushEditor_BrushOpacity", "Brush Opacity"), null, null, null, false); } if (m_beginCreateButton != null) { m_beginCreateButton.onClick.AddListener(BeginCreateButtonClick); } if (m_addButton != null) { m_addButton.onClick.AddListener(OnAddButtonClick); } if (m_deleteButton != null) { m_deleteButton.onClick.AddListener(OnDeleteButtonClick); } }
private void Awake() { m_appTheme = IOC.Resolve <IAppTheme>(); AwakeOverride(); }
/// <summary> /// 构造函数 /// </summary> public BeiJingKZCJob() { log = new LogHelper(); services = IOC.Resolve <IOpen9Code>(); email = IOC.Resolve <IEmail>(); }
protected void OnAssetItemsLoaded(Object[] objects, ExposeToEditor dropTarget, VirtualizingTreeViewItem treeViewItem) { m_selectionComponent = Editor.GetScenePivot(); GameObject[] createdObjects = new GameObject[objects.Length]; for (int i = 0; i < objects.Length; ++i) { GameObject prefab = (GameObject)objects[i]; bool wasPrefabEnabled = prefab.activeSelf; prefab.SetActive(false); GameObject prefabInstance = InstantiatePrefab(prefab); Editor.AddGameObjectToHierarchy(prefabInstance); prefab.SetActive(wasPrefabEnabled); ExposeToEditor exposeToEditor = ExposePrefabInstance(prefabInstance); exposeToEditor.SetName(prefab.name); if (dropTarget == null) { exposeToEditor.transform.SetParent(null); m_treeView.Add(exposeToEditor); } else { if (m_lastDropAction == ItemDropAction.SetLastChild) { exposeToEditor.transform.SetParent(dropTarget.transform); m_treeView.AddChild(dropTarget, exposeToEditor); treeViewItem.CanExpand = true; treeViewItem.IsExpanded = true; } if (m_lastDropAction != ItemDropAction.None && m_lastDropAction != ItemDropAction.SetLastChild) { int index; int siblingIndex; if (m_lastDropAction == ItemDropAction.SetNextSibling) { index = m_treeView.IndexOf(dropTarget) + 1; siblingIndex = dropTarget.transform.GetSiblingIndex() + 1; } else { index = m_treeView.IndexOf(dropTarget); siblingIndex = dropTarget.transform.GetSiblingIndex(); } exposeToEditor.transform.SetParent(dropTarget.transform.parent != null ? dropTarget.transform.parent : null); exposeToEditor.transform.SetSiblingIndex(siblingIndex); TreeViewItemContainerData newTreeViewItemData = (TreeViewItemContainerData)m_treeView.Insert(index, exposeToEditor); VirtualizingTreeViewItem newTreeViewItem = m_treeView.GetTreeViewItem(exposeToEditor); if (newTreeViewItem != null) { newTreeViewItem.Parent = treeViewItem.Parent; } else { newTreeViewItemData.Parent = treeViewItem.Parent; } } } OnActivatePrefabInstance(prefabInstance); createdObjects[i] = prefabInstance; } if (createdObjects.Length > 0) { IRuntimeEditor editor = IOC.Resolve <IRuntimeEditor>(); editor.RegisterCreatedObjects(createdObjects, m_selectionComponent != null ? m_selectionComponent.CanSelect : true); } m_treeView.ExternalItemDrop(); m_isSpawningPrefab = false; }
private void CreateEditor() { DestroyEditor(); if (Editor.Selection.activeObject == null) { return; } UnityObject[] selectedObjects = Editor.Selection.objects.Where(o => o != null).ToArray(); if (selectedObjects.Length != 1) { return; } Type objType = selectedObjects[0].GetType(); for (int i = 1; i < selectedObjects.Length; ++i) { if (objType != selectedObjects[i].GetType()) { return; } } ExposeToEditor exposeToEditor = Editor.Selection.activeGameObject != null? Editor.Selection.activeGameObject.GetComponent <ExposeToEditor>() : null; if (exposeToEditor != null && !exposeToEditor.CanInspect) { return; } GameObject editorPrefab; if (objType == typeof(Material)) { Material mat = selectedObjects[0] as Material; if (mat.shader == null) { return; } editorPrefab = m_editorsMap.GetMaterialEditor(mat.shader); } else { if (!m_editorsMap.IsObjectEditorEnabled(objType)) { return; } editorPrefab = m_editorsMap.GetObjectEditor(objType); } if (editorPrefab != null) { m_editor = Instantiate(editorPrefab); m_editor.transform.SetParent(m_panel, false); m_editor.transform.SetAsFirstSibling(); } if (m_addComponentRoot != null && exposeToEditor) { IProject project = IOC.Resolve <IProject>(); if (project == null || project.ToAssetItem(Editor.Selection.activeGameObject) == null) { m_addComponentRoot.SetActive(true); if (m_addComponentControl != null) { m_addComponentControl.ComponentSelected += OnAddComponent; } } } }
public PersistentRuntimePrefab() { m_typeMap = IOC.Resolve <ITypeMap>(); }
/// <summary> /// 构造函数 /// </summary> public GD36X7Job() { log = new LogHelper(); services = IOC.Resolve <IDTOpenCode>(); email = IOC.Resolve <IEmail>(); }
/// <summary> /// 构造函数 /// </summary> public QXCGlossaryJob() { log = new LogHelper(); services = IOC.Resolve <IDTOpenCode>(); email = IOC.Resolve <IEmail>(); }
/// <summary> /// 构造函数 /// </summary> public FJ11X5Job() { log = new LogHelper(); services = IOC.Resolve <IOpen5Code>(); email = IOC.Resolve <IEmail>(); }