示例#1
0
    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();
    }
示例#2
0
        //-------------------------------------------------------------------------
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        /// <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;
            }
        }
示例#5
0
 private static extern SILVER_ERROR silverGenerateMesh(MeshType type, MeshQuality quality, float density, int width, int height, out SilverMesh mesh);
示例#6
0
 private void Init()
 {
     _scale   = new Vector3(1, 1, 1);
     _quality = MeshQuality.High;
     Sprites  = new Sprite[0];
 }