public override object GetResource(ResourcePtr ptr, Stream stream) { using (TextReader Reader = new StreamReader(stream)) using (JsonReader JReader = new JsonTextReader(Reader)) { MaterialScript ms = Activator.CreateInstance <MaterialScript>(); ms.JObject = JObject.Load(JReader); //Validate that we have required shaders if (ms.FragmentShader == null) { throw new WatertightLoadingFailureException(string.Format("Error loading material: {0}, missing $FragmentShader", ptr.ToString())); } if (ms.VertexShader == null) { throw new WatertightLoadingFailureException(string.Format("Error loading material: {0}, missing $VertexShader", ptr.ToString())); } Material Mat = IEngine.Instance.Renderer.MaterialFactory.Create(ms); //Load the shaders Mat._Shaders[Shader.Stage.Fragment] = GetShader(ms.FragmentShader, Shader.Stage.Fragment); Mat._Shaders[Shader.Stage.Vertex] = GetShader(ms.VertexShader, Shader.Stage.Vertex); Mat.PostLoad(); return(Mat); } }
public Material Create(MaterialScript Script) { Material m = Create(); Script?.ApplyToObject(m); return(m); }
// Start is called before the first frame update void Start() { materialScript = transform.GetChild(0).GetComponent <MaterialScript>(); GameDataManager.saveGame = true; }