static void CreateMaterial (GameObject go) { // Create a simple material asset if (go.GetComponent<Renderer>() != null) { Material material = new Material(go.GetComponent<Renderer>().sharedMaterial); material.CopyPropertiesFromMaterial(go.GetComponent<Renderer>().sharedMaterial); go.GetComponent<Renderer>().sharedMaterial = material; MaterialPropertyBlock block = new MaterialPropertyBlock(); go.GetComponent<Renderer>().GetPropertyBlock(block); #if UNITY_EDITOR if(!Directory.Exists("Assets/Materials")) { AssetDatabase.CreateFolder("Assets", "Materials"); AssetDatabase.Refresh(); } string textureName = null; if (block.GetTexture(0).name != null) { textureName = block.GetTexture(0).name; } else { textureName = material.mainTexture.name; } AssetDatabase.CreateAsset(material, "Assets/Materials/" + textureName + ".mat"); Debug.Log("Created material " + textureName + " for " + go.name); #endif } }
static public int GetTexture(IntPtr l) { try { int argc = LuaDLL.lua_gettop(l); if (matchType(l, argc, 2, typeof(int))) { UnityEngine.MaterialPropertyBlock self = (UnityEngine.MaterialPropertyBlock)checkSelf(l); System.Int32 a1; checkType(l, 2, out a1); var ret = self.GetTexture(a1); pushValue(l, true); pushValue(l, ret); return(2); } else if (matchType(l, argc, 2, typeof(string))) { UnityEngine.MaterialPropertyBlock self = (UnityEngine.MaterialPropertyBlock)checkSelf(l); System.String a1; checkType(l, 2, out a1); var ret = self.GetTexture(a1); pushValue(l, true); pushValue(l, ret); return(2); } pushValue(l, false); LuaDLL.lua_pushstring(l, "No matched override function to call"); return(2); } catch (Exception e) { return(error(l, e)); } }
static int GetTexture(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 2 && TypeChecker.CheckTypes <int>(L, 2)) { UnityEngine.MaterialPropertyBlock obj = (UnityEngine.MaterialPropertyBlock)ToLua.CheckObject(L, 1, typeof(UnityEngine.MaterialPropertyBlock)); int arg0 = (int)LuaDLL.lua_tonumber(L, 2); UnityEngine.Texture o = obj.GetTexture(arg0); ToLua.Push(L, o); return(1); } else if (count == 2 && TypeChecker.CheckTypes <string>(L, 2)) { UnityEngine.MaterialPropertyBlock obj = (UnityEngine.MaterialPropertyBlock)ToLua.CheckObject(L, 1, typeof(UnityEngine.MaterialPropertyBlock)); string arg0 = ToLua.ToString(L, 2); UnityEngine.Texture o = obj.GetTexture(arg0); ToLua.Push(L, o); return(1); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to method: UnityEngine.MaterialPropertyBlock.GetTexture")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static public int GetTexture(IntPtr l) { try{ if (matchType(l, 2, typeof(System.String))) { UnityEngine.MaterialPropertyBlock self = (UnityEngine.MaterialPropertyBlock)checkSelf(l); System.String a1; checkType(l, 2, out a1); UnityEngine.Texture ret = self.GetTexture(a1); pushValue(l, ret); return(1); } else if (matchType(l, 2, typeof(System.Int32))) { UnityEngine.MaterialPropertyBlock self = (UnityEngine.MaterialPropertyBlock)checkSelf(l); System.Int32 a1; checkType(l, 2, out a1); UnityEngine.Texture ret = self.GetTexture(a1); pushValue(l, ret); return(1); } LuaDLL.luaL_error(l, "No matched override function to call"); return(0); } catch (Exception e) { LuaDLL.luaL_error(l, e.ToString()); return(0); } }
static public int GetTexture(IntPtr l) { try { #if DEBUG var method = System.Reflection.MethodBase.GetCurrentMethod(); string methodName = GetMethodName(method); #if UNITY_5_5_OR_NEWER UnityEngine.Profiling.Profiler.BeginSample(methodName); #else Profiler.BeginSample(methodName); #endif #endif int argc = LuaDLL.lua_gettop(l); if (matchType(l, argc, 2, typeof(int))) { UnityEngine.MaterialPropertyBlock self = (UnityEngine.MaterialPropertyBlock)checkSelf(l); System.Int32 a1; checkType(l, 2, out a1); var ret = self.GetTexture(a1); pushValue(l, true); pushValue(l, ret); return(2); } else if (matchType(l, argc, 2, typeof(string))) { UnityEngine.MaterialPropertyBlock self = (UnityEngine.MaterialPropertyBlock)checkSelf(l); System.String a1; checkType(l, 2, out a1); var ret = self.GetTexture(a1); pushValue(l, true); pushValue(l, ret); return(2); } pushValue(l, false); LuaDLL.lua_pushstring(l, "No matched override function GetTexture to call"); return(2); } catch (Exception e) { return(error(l, e)); } #if DEBUG finally { #if UNITY_5_5_OR_NEWER UnityEngine.Profiling.Profiler.EndSample(); #else Profiler.EndSample(); #endif } #endif }
static public int GetTexture__Int32(IntPtr l) { try { UnityEngine.MaterialPropertyBlock self = (UnityEngine.MaterialPropertyBlock)checkSelf(l); System.Int32 a1; checkType(l, 2, out a1); var ret = self.GetTexture(a1); pushValue(l, true); pushValue(l, ret); return(2); } catch (Exception e) { return(error(l, e)); } }
void UpdateMaterial() { if (! initialised) { // Parameters changed before Awake() has been run, do a full update when appropriate. // (Can't rely on Awake() when the GameObject is disabled. It does a lousy job as a constructor.) regenerateMesh = true; return; } if ((renderer.sharedMaterials.Length != 1) || (renderer.sharedMaterials[0] != m_material)) { // Update only when necessary to prevent false scene changes. renderer.sharedMaterials = new Material[] {m_material}; } MaterialPropertyBlock materialProperties = new MaterialPropertyBlock(); renderer.GetPropertyBlock(materialProperties); if ((m_sprite != null) && (m_sprite.texture != null)) { materialProperties.SetTexture("_MainTex", m_sprite.texture); } else if (m_material != null) { if (materialProperties.GetTexture("_MainTex") != null) { materialProperties.Clear(); } m_material.SetTexture("_MainTex", null); } renderer.SetPropertyBlock(materialProperties); }