Tanoda
pb_MaterialConverter.cs
Go to the documentation of this file.
1using UnityEngine;
2using Newtonsoft.Json;
3using Newtonsoft.Json.Serialization;
4using Newtonsoft.Json.Linq;
5using System.Reflection;
6using System;
7using System.Linq;
8
10{
12 {
13 public override void WriteObjectJson(JsonWriter writer, object value, JsonSerializer serializer)
14 {
15 JObject o = new JObject();
16
17 Material mat = ((UnityEngine.Material)value);
18
19 o.Add("name", mat.name);
20 o.Add("shader", mat.shader.name.ToString());
21 o.Add("shaderObj", JObject.FromObject(mat.shader));
22
23 o.WriteTo(writer, serializer.Converters.ToArray());
24 }
25
26 public override object ReadJsonObject(JObject obj, Type objectType, object existingValue, JsonSerializer serializer)
27 {
28 try
29 {
30 string name = obj.GetValue("name").ToObject<string>();
31 string shader = obj.GetValue("shader").ToObject<string>();
32
33 Material mat = new Material(Shader.Find(shader));
34 mat.name = name;
35
36 return mat;
37 }
38 catch
39 {
40 return null;
41 }
42 }
43 }
44}
override void WriteObjectJson(JsonWriter writer, object value, JsonSerializer serializer)
override object ReadJsonObject(JObject obj, Type objectType, object existingValue, JsonSerializer serializer)