示例#1
0
    /// <summary>
    /// Creates and returns a new mesh with generated lightmap uvs (Editor Only)
    /// </summary>
    public Mesh GetMesh_GenerateSecondaryUVSet(UnityEditor.UnwrapParam param)
    {
        Mesh shape = GetMesh();

        // for light mapping
        UnityEditor.Unwrapping.GenerateSecondaryUVSet(shape, param);

        return(shape);
    }
        /// <summary>
        /// Creates and returns a new mesh with generated lightmap uvs
        /// </summary>
        public Mesh GetMesh_GenerateSecondaryUVSet(UnityEditor.UnwrapParam param)
        {
            Mesh shape = GetMesh();

                        #if UNITY_EDITOR
            UnityEditor.Unwrapping.GenerateSecondaryUVSet(shape, param);
                        #endif

            return(shape);
        }
示例#3
0
 private void GenerateUV(Mesh combinedMesh)
 {
             #if UNITY_EDITOR
     if (generateUVMap)
     {
         UnityEditor.UnwrapParam unwrapParam = new UnityEditor.UnwrapParam();
         UnityEditor.UnwrapParam.SetDefaults(out unwrapParam);
         UnityEditor.Unwrapping.GenerateSecondaryUVSet(combinedMesh, unwrapParam);
     }
             #endif
 }
	void OnGUI()
	{
		if ( Selection.activeGameObject == null )
			return;

		MegaShape shape = Selection.activeGameObject.GetComponent<MegaShape>();
		if ( shape == null )
			return;

		//UnwrapParam uv1 = new UnwrapParam();
		//UnwrapParam.SetDefaults(out uv1);

		//loft.genLightMap = EditorGUILayout.BeginToggleGroup("Gen LightMap", loft.genLightMap);
		shape.angleError = EditorGUILayout.Slider("Angle Error", shape.angleError, 0.0f, 1.0f);
		shape.areaError = EditorGUILayout.Slider("Area Error", shape.areaError, 0.0f, 1.0f);
		shape.hardAngle = EditorGUILayout.FloatField("Hard Angle", shape.hardAngle);
		shape.packMargin = EditorGUILayout.FloatField("Pack Margin", shape.packMargin);

		EditorStyles.textField.wordWrap = false;

		EditorGUILayout.BeginHorizontal();
		if ( GUILayout.Button("Build") )
		{
			UnwrapParam uv = new UnwrapParam();
			//UnwrapParam.SetDefaults(out uv);
			uv.angleError = shape.angleError;
			uv.areaError = shape.areaError;
			uv.hardAngle = shape.hardAngle;
			uv.packMargin = shape.packMargin;

			Unwrapping.GenerateSecondaryUVSet(shape.shapemesh, uv);

			this.Close();
		}

		if ( GUILayout.Button("Cancel") )
		{
			this.Close();
		}
		EditorGUILayout.EndHorizontal();
	}
示例#5
0
        public void GenerateMesh()
        {
            var filter = GetComponent <MeshFilter>();

            if (filter != null)
            {
#if UNITY_EDITOR
                Mesh mesh = ShapeCombiner.BuildOneMesh(this, shouldOptimize: false, shouldUpload: false);

                var p = new UnityEditor.UnwrapParam();
                p.angleError = 0.05f;
                p.areaError  = 0.05f;
                p.hardAngle  = 90;
                p.packMargin = 0.0f;
                UnityEditor.Unwrapping.GenerateSecondaryUVSet(mesh);

                //mesh.uv = mesh.uv2;

                filter.sharedMesh = mesh;
#endif
            }
        }
示例#6
0
 /// <summary>
 /// <para>Will generate per-triangle uv (3 UVs for each triangle) with default settings.</para>
 /// </summary>
 /// <param name="src">The source mesh to generate UVs for.</param>
 /// <returns>
 /// <para>The list of UVs generated.</para>
 /// </returns>
 public static Vector2[] GeneratePerTriangleUV(Mesh src)
 {
     UnwrapParam param = new UnwrapParam();
     UnwrapParam.SetDefaults(out param);
     return GeneratePerTriangleUV(src, param);
 }
示例#7
0
 public static extern void SetDefaults(out UnwrapParam param);
示例#8
0
 private static extern Vector2[] INTERNAL_CALL_GeneratePerTriangleUVImpl(Mesh src, ref UnwrapParam settings);
 /// <summary>
 ///   <para>Will auto generate uv2 with provided settings for provided mesh, and fill them in.</para>
 /// </summary>
 /// <param name="src"></param>
 /// <param name="settings"></param>
 public static void GenerateSecondaryUVSet(Mesh src, UnwrapParam settings)
 {
   MeshUtility.SetPerTriangleUV2(src, Unwrapping.GeneratePerTriangleUV(src, settings));
 }
示例#10
0
 internal static extern Vector2[] GeneratePerTriangleUVImpl(Mesh src, UnwrapParam settings);
示例#11
0
 /// <summary>
 ///   <para>Will generate per-triangle uv (3 uv pairs for each triangle) with provided settings.</para>
 /// </summary>
 /// <param name="src"></param>
 /// <param name="settings"></param>
 public static Vector2[] GeneratePerTriangleUV(Mesh src, UnwrapParam settings)
 {
   return Unwrapping.GeneratePerTriangleUVImpl(src, settings);
 }
示例#12
0
 /// <summary>
 ///   <para>Will generate per-triangle uv (3 uv pairs for each triangle) with default settings.</para>
 /// </summary>
 /// <param name="src"></param>
 public static Vector2[] GeneratePerTriangleUV(Mesh src)
 {
   UnwrapParam settings = new UnwrapParam();
   UnwrapParam.SetDefaults(out settings);
   return Unwrapping.GeneratePerTriangleUV(src, settings);
 }
示例#13
0
 private static extern Vector2[] INTERNAL_CALL_GeneratePerTriangleUVImpl(Mesh src, ref UnwrapParam settings);
示例#14
0
 internal static Vector2[] GeneratePerTriangleUVImpl(Mesh src, UnwrapParam settings)
 {
     return(Unwrapping.INTERNAL_CALL_GeneratePerTriangleUVImpl(src, ref settings));
 }
示例#15
0
 public static Vector2[] GeneratePerTriangleUV(Mesh src, UnwrapParam settings)
 {
     return(Unwrapping.GeneratePerTriangleUVImpl(src, settings));
 }
示例#16
0
 public static extern void SetDefaults(out UnwrapParam param);
示例#17
0
 public static void GenerateSecondaryUVSet(Mesh src, UnwrapParam settings)
 {
     MeshUtility.SetPerTriangleUV2(src, Unwrapping.GeneratePerTriangleUV(src, settings));
 }
示例#18
0
 // Will auto generate uv2 with provided settings for provided mesh, and fill them in
 public static bool GenerateSecondaryUVSet(Mesh src, UnwrapParam settings)
 {
     return(MeshUtility.SetPerTriangleUV2(src, GeneratePerTriangleUV(src, settings)));
 }
示例#19
0
 static extern Vector2[] GeneratePerTriangleUVImpl(Mesh src, UnwrapParam settings);
示例#20
0
 internal static Vector2[] GeneratePerTriangleUVImpl(Mesh src, UnwrapParam settings)
 {
     return INTERNAL_CALL_GeneratePerTriangleUVImpl(src, ref settings);
 }
示例#21
0
 /// <summary>
 /// <para>Will generate per-triangle uv (3 UVs for each triangle) with provided settings.</para>
 /// </summary>
 /// <param name="src">The source mesh to generate UVs for.</param>
 /// <param name="settings">Allows you to specify custom parameters to control the unwrapping.</param>
 /// <returns>
 /// <para>The list of UVs generated.</para>
 /// </returns>
 public static Vector2[] GeneratePerTriangleUV(Mesh src, UnwrapParam settings) =>
 GeneratePerTriangleUVImpl(src, settings);