private void OnGUI() { if (!_inited) { Init(); _inited = true; } GUILayout.BeginVertical(); ScriptableObject target = this; SerializedObject so = new SerializedObject(target); SerializedProperty stringsProperty = so.FindProperty("Sprites"); EditorGUILayout.PropertyField(stringsProperty, true); so.ApplyModifiedProperties(); _scale = EditorGUILayout.Vector3Field("Scale ", _scale); _quality = (MeshQuality)EditorGUILayout.EnumPopup("Mesh quality ", _quality); _optimized = EditorGUILayout.Toggle("Optimize mesh ", _optimized); _recalcNormals = EditorGUILayout.Toggle("Recalculate normals ", _recalcNormals); if (GUILayout.Button("Generate and Save")) { GenerateAndSave(); } EditorGUILayout.HelpBox("Drag and drop sprites into the sprites field and click Generate and Save button.", MessageType.Info, true); EditorGUILayout.HelpBox("Sprite texture must be Read/Write Enabled. You can set this at image import settings window.", MessageType.Info); GUILayout.EndVertical(); }
//------------------------------------------------------------------------- public static Mesh GenerateMesh(MeshType meshType, MeshQuality meshQuality, float density, int width, int height) { SilverMesh mesh = new SilverMesh(); silverGenerateMesh(meshType, meshQuality, density, width, height, out mesh); Mesh finalMesh = SilverMeshToUnityMesh(mesh); return(finalMesh); }
public static Mesh ParseSquishMesh(string meshConfigString) { squish_config meshConfig = JsonUtility.FromJson <squish_config>(meshConfigString); SilverMesh mesh = new SilverMesh(); MeshType meshType = MeshType.eMeshTypeInvalid; MeshQuality meshQuality = MeshQuality.eQInvalid; switch (meshConfig.squish.type.ToLower()) { case "erp180": meshType = MeshType.eMeshTypeErp180; break; case "fisheye180": case "fisheye": meshType = MeshType.eMeshTypeFisheye180; break; case "erp360": case "erp": meshType = MeshType.eMeshTypeErp360; break; default: meshType = (MeshType)int.Parse(meshConfig.squish.type); break; } switch (meshConfig.squish.quality.ToLower()) { case "eq1": meshQuality = MeshQuality.eQ1; break; case "eq2": meshQuality = MeshQuality.eQ2; break; case "eq3": meshQuality = MeshQuality.eQ3; break; case "eq4": meshQuality = MeshQuality.eQ4; break; case "eq5": meshQuality = MeshQuality.eQ5; break; case "eq6": meshQuality = MeshQuality.eQ6; break; default: meshQuality = (MeshQuality)int.Parse(meshConfig.squish.quality); break; } silverGenerateMesh(meshType, meshQuality, meshConfig.squish.density, 0, 0, out mesh); Mesh finalMesh = SilverMeshToUnityMesh(mesh); return(finalMesh); }
/// <summary> /// Create instance of the builder class /// </summary> /// <param name="quality">Quality of the final mesh, how optimized it is.</param> public PixelMeshBuilder(MeshQuality quality) { switch (quality) { case MeshQuality.Low: _builder = new LowPMB(); break; case MeshQuality.Medium: _builder = new MediumPMB(); break; case MeshQuality.High: _builder = new HighPMB(); break; default: Debug.LogError("Unknown quality level!"); break; } }
private static extern SILVER_ERROR silverGenerateMesh(MeshType type, MeshQuality quality, float density, int width, int height, out SilverMesh mesh);
private void Init() { _scale = new Vector3(1, 1, 1); _quality = MeshQuality.High; Sprites = new Sprite[0]; }