public VoxelEditorCommon(VoxelBase objectTarget) { this.objectTarget = objectTarget; objectCore = new VoxelSkinnedAnimationObjectCore(objectTarget); arrow = CreateArrowMesh(); vertexColorMaterial = new Material(Shader.Find("Voxel Importer/VertexColor")); vertexColorMaterial.hideFlags = HideFlags.DontSave; vertexColorTransparentMaterial = new Material(Shader.Find("Voxel Importer/VertexColor-Transparent")); vertexColorTransparentMaterial.hideFlags = HideFlags.DontSave; vertexColorTransparentZwriteMaterial = new Material(Shader.Find("Voxel Importer/VertexColor-Transparent-Zwrite")); vertexColorTransparentZwriteMaterial.hideFlags = HideFlags.DontSave; unlitColorMaterial = new Material(Shader.Find("Voxel Importer/Unlit/Color")); unlitColorMaterial.hideFlags = HideFlags.DontSave; unlitTextureMaterial = new Material(Shader.Find("Voxel Importer/Unlit/Transparent")); unlitTextureMaterial.hideFlags = HideFlags.DontSave; blackTransparentTexture = CreateColorTexture(new Color(0, 0, 0, 0.3f)); editorRectList = new List <Rect>(); animationTime = Time.realtimeSinceStartup; }
private static void ExportDaeFile(MenuCommand menuCommand) { var objectTarget = menuCommand.context as VoxelSkinnedAnimationObject; if (objectTarget == null) { return; } var objectCore = new VoxelSkinnedAnimationObjectCore(objectTarget); DaeExporterWindow.Open(objectTarget.rigAnimationType == VoxelSkinnedAnimationObject.RigAnimationType.Humanoid, () => { string path = EditorUtility.SaveFilePanel("Export COLLADA(dae) File", objectCore.GetDefaultPath(), string.Format("{0}.dae", Path.GetFileNameWithoutExtension(objectTarget.voxelFilePath)), "dae"); if (string.IsNullOrEmpty(path)) { return; } if (!objectCore.ExportDaeFileWithAnimation(path, DaeExporterWindow.exportMesh, DaeExporterWindow.exportAnimation, DaeExporterWindow.enableFootIK)) { Debug.LogErrorFormat("<color=green>[Voxel Importer]</color> Export COLLADA(dae) File error. file:{0}", path); } }); }
public VoxelSkinnedAnimationObjectExplosionCore(VoxelBaseExplosion target) : base(target) { explosionObject = target as VoxelSkinnedAnimationObjectExplosion; voxelBase = voxelObject = target.GetComponent <VoxelSkinnedAnimationObject>(); voxelBaseCore = voxelObjectCore = new VoxelSkinnedAnimationObjectCore(voxelObject); voxelBaseCore.Initialize(); }
protected override void OnEnable() { base.OnEnable(); animationTarget = target as VoxelSkinnedAnimationObject; if (animationTarget == null) { return; } baseCore = objectCore = animationCore = new VoxelSkinnedAnimationObjectCore(animationTarget); OnEnableInitializeSet(); }
private static void ResetAllSavedAssets(MenuCommand menuCommand) { var objectTarget = menuCommand.context as VoxelSkinnedAnimationObject; if (objectTarget == null) { return; } var objectCore = new VoxelSkinnedAnimationObjectCore(objectTarget); Undo.RecordObject(objectTarget, "Reset All Assets"); #region Mesh objectTarget.mesh = null; #endregion #region Material if (objectTarget.materials != null) { for (int i = 0; i < objectTarget.materials.Count; i++) { if (objectTarget.materials[i] == null) { continue; } if (!IsMainAsset(objectTarget.materials[i])) { objectTarget.materials[i] = null; } else { objectTarget.materials[i] = Instantiate <Material>(objectTarget.materials[i]); } } } #endregion #region Texture objectTarget.atlasTexture = null; #endregion #region Avatar objectTarget.avatar = null; #endregion objectCore.ReCreate(); InternalEditorUtility.RepaintAllViews(); }
protected override void OnEnable() { base.OnEnable(); animationTarget = target as VoxelSkinnedAnimationObject; if (animationTarget == null) { return; } baseCore = objectCore = animationCore = new VoxelSkinnedAnimationObjectCore(animationTarget); baseCore.Initialize(); UpdateMaterialList(materials); if (baseTarget.edit_configureMode == VoxelBase.Edit_configureMode.Material) { UpdateMaterialEnableMesh(); } }
public VoxelSkinnedAnimationObjectBoneCore(VoxelSkinnedAnimationObjectBone target, VoxelSkinnedAnimationObjectCore objCore) { voxelBone = target; objectCore = objCore; }
public VoxelSkinnedAnimationObjectBoneCore(VoxelSkinnedAnimationObjectBone target) { voxelBone = target; objectCore = new VoxelSkinnedAnimationObjectCore(voxelBone.voxelObject); }
private static void ContextSaveAllUnsavedAssets(MenuCommand menuCommand) { var objectTarget = menuCommand.context as VoxelSkinnedAnimationObject; if (objectTarget == null) { return; } var objectCore = new VoxelSkinnedAnimationObjectCore(objectTarget); var folder = EditorUtility.OpenFolderPanel("Save all", objectCore.GetDefaultPath(), null); if (string.IsNullOrEmpty(folder)) { return; } if (folder.IndexOf(Application.dataPath) < 0) { SaveInsideAssetsFolderDisplayDialog(); return; } Undo.RecordObject(objectTarget, "Save All Unsaved Assets"); #region Mesh if (objectTarget.mesh != null && !IsMainAsset(objectTarget.mesh)) { var path = folder + "/" + string.Format("{0}_mesh.asset", objectTarget.gameObject.name); path = path.Replace(Application.dataPath, "Assets"); path = AssetDatabase.GenerateUniqueAssetPath(path); AssetDatabase.CreateAsset(Mesh.Instantiate(objectTarget.mesh), path); objectTarget.mesh = AssetDatabase.LoadAssetAtPath <Mesh>(path); } #endregion #region Material if (objectTarget.materials != null) { for (int index = 0; index < objectTarget.materials.Count; index++) { if (objectTarget.materials[index] == null || IsMainAsset(objectTarget.materials[index])) { continue; } var path = folder + "/" + string.Format("{0}_mat{1}.mat", objectTarget.gameObject.name, index); path = path.Replace(Application.dataPath, "Assets"); path = AssetDatabase.GenerateUniqueAssetPath(path); AssetDatabase.CreateAsset(Material.Instantiate(objectTarget.materials[index]), path); objectTarget.materials[index] = AssetDatabase.LoadAssetAtPath <Material>(path); } } #endregion #region Texture if (objectTarget.atlasTexture != null && !IsMainAsset(objectTarget.atlasTexture)) { var path = folder + "/" + string.Format("{0}_tex.png", objectTarget.gameObject.name); { path = AssetDatabase.GenerateUniqueAssetPath(path.Replace(Application.dataPath, "Assets")); path = (Application.dataPath + path).Replace("AssetsAssets", "Assets"); } File.WriteAllBytes(path, objectTarget.atlasTexture.EncodeToPNG()); path = path.Replace(Application.dataPath, "Assets"); AssetDatabase.ImportAsset(path); objectCore.SetTextureImporterSetting(path, objectTarget.atlasTexture); objectTarget.atlasTexture = AssetDatabase.LoadAssetAtPath <Texture2D>(path); } #endregion #region Avatar if (objectTarget.avatar != null && !IsMainAsset(objectTarget.avatar)) { var path = folder + "/" + string.Format("{0}_avatar.asset", objectTarget.gameObject.name); path = path.Replace(Application.dataPath, "Assets"); path = AssetDatabase.GenerateUniqueAssetPath(path); AssetDatabase.CreateAsset(Avatar.Instantiate(objectTarget.avatar), path); objectTarget.avatar = AssetDatabase.LoadAssetAtPath <Avatar>(path); } #endregion objectCore.ReCreate(); InternalEditorUtility.RepaintAllViews(); }