-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMatImporter.cs
More file actions
59 lines (55 loc) · 2.32 KB
/
MatImporter.cs
File metadata and controls
59 lines (55 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using UnityEngine;
namespace Cold_Waters_Expanded
{
[Serializable]
class SerialiseMaterial
{
[SerializeField] string shaderReference;
[SerializeField] List<float> ambientColour;
[SerializeField] List<float> diffuseColour;
[SerializeField] float specularExponent;
[SerializeField] List<float> specularColour;
[SerializeField] float opaqueness;
[SerializeField] float opticalDensity;
[SerializeField] float roughness;
[SerializeField] float metallic;
[SerializeField] float sheen;
public Material GetMaterial() {
Material material = new Material( Resources.Load( "ships/usn_ssn_skipjack/usn_ssn_skipjack_mat" ) as Material );
//Debug.Log( material.ToString() );
Color diffuse;
if( diffuseColour.Count == 3 ) {
diffuse = new Color( diffuseColour[0], diffuseColour[1], diffuseColour[2], 1.0f );
}
else {
diffuse = new Color( diffuseColour[0], diffuseColour[1], diffuseColour[2], diffuseColour[3] );
}
material.SetColor( "_Color", diffuse );
Color specular;
if( specularColour.Count == 3 ) {
specular = new Color( specularColour[0], specularColour[1], specularColour[2], 1.0f );
}
else {
specular = new Color( specularColour[0], specularColour[1], specularColour[2], specularColour[3] );
}
material.SetColor( "_SpecColor", specular );
material.SetFloat( "_Shininess", sheen );
material.SetFloat( "_Metallic", metallic );
material.SetFloat( "_SpecInt", specularExponent );
material.SetTexture( "_MainTex", null );
material.SetTexture( "_SpecTex", null );
material.SetTexture( "_BumpMap", null );
//Debug.Log( material.ToString() );
return material;
}
public static Material LoadMaterial( string materialPath ) {
string json = File.ReadAllText( materialPath );
return JsonUtility.FromJson<SerialiseMaterial>( json ).GetMaterial();
}
}
}