private static Material CreateStep_Material(Shader shader) { string path = ""; if (edit.newCopy || string.IsNullOrEmpty(edit.data.materialGUID) || string.IsNullOrEmpty(AssetDatabase.GUIDToAssetPath(edit.data.materialGUID))) { path = string.Format("{0}{1}.mat", edit.folderPath, edit.data.title); } else { path = SWCommon.AssetDBPath2Path(AssetDatabase.GUIDToAssetPath(edit.data.materialGUID)); } Material m = AssetDatabase.LoadAssetAtPath <Material> (SWCommon.Path2AssetDBPath(path)); if (m == null) { m = new Material(shader); SetMaterialProp(m, edit); m = SWCommon.SaveReload <Material> (m, path); } else { m.shader = shader; SetMaterialProp(m, edit); } edit.data.materialGUID = SWEditorTools.ObjectToGUID(m); return(m); }
public virtual void AfterLoad() { if (!string.IsNullOrEmpty(data.textureGUID)) { texture = SWEditorTools.GUIDToObject <Texture2D>(data.textureGUID); } if (!string.IsNullOrEmpty(data.textureGUIDGray)) { textureGray = SWEditorTools.GUIDToObject <Texture2D>(data.textureGUIDGray); } if (!string.IsNullOrEmpty(data.textureExGUID)) { var tex = SWEditorTools.GUIDToObject <Texture2D>(data.textureExGUID); textureEx = new SWTexture2DEx(tex); } if (!string.IsNullOrEmpty(data.spriteGUID)) { string path = AssetDatabase.GUIDToAssetPath(data.spriteGUID); Object[] objs = AssetDatabase.LoadAllAssetsAtPath(path); foreach (var item in objs) { if (item is Sprite && item.name == data.spriteName) { //Debug.Log ("Found"); sprite = (Sprite)item; } } } }
public virtual void BeforeSave() { if (texture != null) { data.textureGUID = SWEditorTools.ObjectToGUID(texture); } else { data.textureGUID = ""; } if (textureGray != null) { data.textureGUIDGray = SWEditorTools.ObjectToGUID(textureGray); } else { data.textureGUIDGray = ""; } if (!textureEx.IsNull) { data.textureExGUID = SWEditorTools.ObjectToGUID(textureEx); } else { data.textureExGUID = ""; } if (sprite != null) { data.spriteName = sprite.name; data.spriteGUID = SWEditorTools.ObjectToGUID(sprite); } }
public override void DrawMainBot() { base.DrawMainBot(); if (brightBackground) { SWEditorTools.DrawTiledTexture(al_rectMain, SWEditorTools.backdropTextureBright); } else { SWEditorTools.DrawTiledTexture(al_rectMain, SWEditorTools.backdropTexture); } }
protected override void DrawLeftRect(int id, Rect rect) { UpdatePort(); rect = new Rect(rect.x, rect.y, rect.width, rect.height); SWEditorTools.DrawTiledTexture(rect, SWEditorTools.backdropTexture); GUI.DrawTexture(rect, data.gradients[id].Tex); if (SWCommon.GetMouseUp(1) && rect.Contains(Event.current.mousePosition)) { SWWindowMixerEditor.Show(data.gradients [id]); } }
public static Material CreateMaterial(SWWindowMain edit) { foreach (var item in edit.NodeAll()) { item.Value.shaderOutput = null; } SWShaderCreaterBase sc = null; if (edit.data.shaderType == SWShaderType.normal) { sc = new SWShaderCreaterBase (edit); } if (edit.data.shaderType == SWShaderType.ui) { sc = new SWShaderCreaterUI (edit); } if (edit.data.shaderType == SWShaderType.uiFont) { sc = new SWShaderCreaterUIFont (edit); } if (edit.data.shaderType == SWShaderType.sprite) { if(edit.data.spriteLightType == SWSpriteLightType.no) sc = new SWShaderCreaterSprite (edit); else if(edit.data.spriteLightType == SWSpriteLightType.diffuse) sc = new SWShaderCreaterSpriteLight (edit); } float f = Time.realtimeSinceStartup; string txt = sc.CreateShaderText(); var shader = CreateShader (edit,txt); string path = ""; if (edit.newCopy || string.IsNullOrEmpty (edit.data.materialGUID)) path = string.Format ("{0}{1}.mat", edit.folderPath, edit.data.title); else path = SWCommon.AssetDBPath2Path(AssetDatabase.GUIDToAssetPath (edit.data.materialGUID)); Material m = AssetDatabase.LoadAssetAtPath<Material> (SWCommon.Path2AssetDBPath(path)); if (m == null) { m = new Material (shader); SetMaterialProp (m, edit); m = SWCommon.SaveReload<Material> (m, path); } else { m.shader = shader; SetMaterialProp (m, edit); } edit.data.materialGUID = SWEditorTools.ObjectToGUID (m); return m; }
protected override void DrawLeftRect(int id, Rect rect) { if (id == 0) { base.DrawLeftRect(id, rect); } else { UpdatePort(); SWEditorTools.DrawTiledTexture(rect, SWEditorTools.backdropTexture); GUI.DrawTexture(rect, data.gradients [id - 1].Tex); if (window.InMapClick(0) && rect.Contains(window.mousePosLast)) { SWWindowMixerEditor.Show(data.gradients [id - 1]); } } }
public virtual void BeforeSave() { if (texture != null) { data.textureGUID = SWEditorTools.ObjectToGUID(texture); } else { data.textureGUID = ""; } if (textureGray != null) { data.textureGUIDGray = SWEditorTools.ObjectToGUID(textureGray); } else { data.textureGUIDGray = ""; } if (!textureEx.IsNull) { data.textureExGUID = SWEditorTools.ObjectToGUID(textureEx); } else { data.textureExGUID = ""; } if (sprite != null) { data.spriteName = sprite.name; data.spriteGUID = SWEditorTools.ObjectToGUID(sprite); } //Sprite Light Normal mapping if (textureNormalMap != null) { data.nmid = SWEditorTools.ObjectToGUID(textureNormalMap); } else { data.nmid = ""; } }
public override void DrawMainBot() { base.DrawMainBot(); SWEditorTools.DrawTiledTexture(al_rectMain, SWEditorTools.backdropTexture); }
void OnGUI() { baseRect = new Rect(Gap, Gap, position.width - Gap * 2, 20); texRect = new Rect(Gap, baseRect.yMax, position.width - Gap * 2, 50); timeRect = new Rect(Gap, texRect.yMax + Gap, position.width - Gap * 2, 20); valueRect = new Rect(Gap, timeRect.yMax, position.width - Gap * 2, 20); if (SWCommon.GetMouseDown(1)) { if (!baseRect.Contains(Event.current.mousePosition)) { mode = SWGradientMode.no; opItem = null; } } if (SWCommon.GetMouseDown(0)) { bool doit = false; if (mode == SWGradientMode.no) { for (int i = 0; i < gradient.frames.Count; i++) { var item = gradient.frames [i]; Rect rect = CalRect(item); if (rect.Contains(Event.current.mousePosition)) { doit = true; mode = SWGradientMode.select; opItem = item; } } } else if (mode == SWGradientMode.select) { for (int i = 0; i < gradient.frames.Count; i++) { var item = gradient.frames [i]; Rect rect = CalRect(item); if (rect.Contains(Event.current.mousePosition)) { doit = true; opItem = item; if (opItem == item) { mode = SWGradientMode.move; } } } } else if (mode == SWGradientMode.move) { doit = true; opItem.time = TimeOnPos(); } if (!doit) { if (baseRect.Contains(Event.current.mousePosition)) { var item = new SWGradientFrame(); item.time = TimeOnPos(); gradient.frames.Add(item); mode = SWGradientMode.select; opItem = item; } } } if (SWCommon.GetMouse(0)) { if (mode == SWGradientMode.no) { } else if (mode == SWGradientMode.select) { } else if (mode == SWGradientMode.move) { opItem.time = TimeOnPos(); } } if (SWCommon.GetMouseUp(0)) { if (mode == SWGradientMode.no) { } else if (mode == SWGradientMode.select) { } else if (mode == SWGradientMode.move) { mode = SWGradientMode.select; } } if (Event.current.type == EventType.KeyDown) { if (Event.current.keyCode == KeyCode.Delete) { if (mode == SWGradientMode.select && opItem != null) { gradient.frames.Remove(opItem); } } } gradient.Sort(); GUI.color = Color.black; GUI.DrawTexture(baseRect, SWEditorTools.blankTexture); GUI.color = Color.white; SWEditorTools.DrawTiledTexture(texRect, SWEditorTools.backdropTexture); GUI.DrawTexture(texRect, gradient.Tex); bool uppperEvent = false; for (int i = 0; i < gradient.frames.Count; i++) { var item = gradient.frames [i]; Rect rect = CalRect(item); GUI.DrawTexture(rect, icon); if (opItem == item) { GUI.DrawTexture(rect, iconSelect); } } if (opItem != null) { opItem.time = EditorGUI.Slider(timeRect, "Position:", opItem.time, 0, 1); opItem.value = EditorGUI.Slider(valueRect, "Value:", opItem.value, 0, 1); } }