You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

91 lines
3.1 KiB

// Amplify Shader Editor - Visual Shader Editing Tool
// Copyright (c) Amplify Creations, Lda <info@amplify.pt>
using UnityEditor;
using System.Collections.Generic;
using System;
using UnityEngine;
namespace AmplifyShaderEditor
{
[Serializable]
public class ShaderLibrary : EditorWindow
{
private const string SHADER_LIB_FILE = "/AmplifyShaderEditor/Resources/ShaderLibrary/ShaderLibrary.txt";
private bool m_init = false;
private Vector2 m_scrollPos = new Vector2();
[SerializeField]
private List<string> m_shaders = new List<string>();
void Init()
{
m_init = true;
string list = IOUtils.LoadTextFileFromDisk( Application.dataPath + SHADER_LIB_FILE );
if ( String.IsNullOrEmpty( list ) )
return;
string[] listArr = list.Split( IOUtils.FIELD_SEPARATOR );
for ( int i = 0; i < listArr.Length; i++ )
{
m_shaders.Add( listArr[ i ] );
}
UIUtils.MainSkin.customStyles[ 10 ].active.background = Texture2D.whiteTexture;
UIUtils.MainSkin.customStyles[ 6 ].fixedHeight = UIUtils.MainSkin.customStyles[ 6 ].normal.background.height;
UIUtils.MainSkin.customStyles[ 6 ].fixedWidth = UIUtils.MainSkin.customStyles[ 6 ].normal.background.width;
UIUtils.MainSkin.customStyles[ 7 ].fixedHeight = UIUtils.MainSkin.customStyles[ 7 ].normal.background.height;
UIUtils.MainSkin.customStyles[ 7 ].fixedWidth = UIUtils.MainSkin.customStyles[ 7 ].normal.background.width;
UIUtils.MainSkin.customStyles[ 8 ].fixedHeight = UIUtils.MainSkin.customStyles[ 8 ].normal.background.height;
UIUtils.MainSkin.customStyles[ 8 ].fixedWidth = UIUtils.MainSkin.customStyles[ 8 ].normal.background.width;
UIUtils.MainSkin.customStyles[ 9 ].fixedHeight = UIUtils.MainSkin.customStyles[ 9 ].normal.background.height;
UIUtils.MainSkin.customStyles[ 9 ].fixedWidth = UIUtils.MainSkin.customStyles[ 9 ].normal.background.width;
}
void OnGUI()
{
if ( !m_init )
{
Init();
}
Rect availableArea = position;
availableArea.y = 100f;
availableArea.x = 0.05f * availableArea.width;
availableArea.height *= 0.5f;
availableArea.width *= 0.9f;
EditorGUILayout.BeginVertical();
{
EditorGUILayout.LabelField( "Shader Library", UIUtils.MainSkin.customStyles[ 5 ] );
GUILayout.Space( 10 );
EditorGUILayout.BeginHorizontal();
{
GUILayout.Space( 0.05f * position.width );
GUILayout.Button( string.Empty, UIUtils.MainSkin.customStyles[ 8 ] );
GUILayout.Button( string.Empty, UIUtils.MainSkin.customStyles[ 9 ] );
GUILayout.Space( 0.8f*position.width );
GUILayout.Button( string.Empty, UIUtils.MainSkin.customStyles[ 7 ] );
GUILayout.Button( string.Empty, UIUtils.MainSkin.customStyles[ 6 ] );
}
EditorGUILayout.EndHorizontal();
GUILayout.BeginArea( availableArea );
m_scrollPos = EditorGUILayout.BeginScrollView( m_scrollPos, UIUtils.MainSkin.box );
{
for ( int i = 0; i < m_shaders.Count; i++ )
{
GUILayout.Button( m_shaders[ i ], UIUtils.MainSkin.customStyles[ 10 ] );
}
}
EditorGUILayout.EndScrollView();
GUILayout.EndArea();
}
EditorGUILayout.EndVertical();
}
}
}