static public int SetFloatArray(IntPtr l) { try { int argc = LuaDLL.lua_gettop(l); if (matchType(l, argc, 2, typeof(int), typeof(System.Single[]))) { UnityEngine.Material self = (UnityEngine.Material)checkSelf(l); System.Int32 a1; checkType(l, 2, out a1); System.Single[] a2; checkArray(l, 3, out a2); self.SetFloatArray(a1, a2); pushValue(l, true); return(1); } else if (matchType(l, argc, 2, typeof(string), typeof(System.Single[]))) { UnityEngine.Material self = (UnityEngine.Material)checkSelf(l); System.String a1; checkType(l, 2, out a1); System.Single[] a2; checkArray(l, 3, out a2); self.SetFloatArray(a1, a2); pushValue(l, true); return(1); } pushValue(l, false); LuaDLL.lua_pushstring(l, "No matched override function to call"); return(2); } catch (Exception e) { return(error(l, e)); } }
static int SetFloatArray(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 3 && TypeChecker.CheckTypes <int, float[]>(L, 2)) { UnityEngine.Material obj = (UnityEngine.Material)ToLua.CheckObject <UnityEngine.Material>(L, 1); int arg0 = (int)LuaDLL.lua_tonumber(L, 2); float[] arg1 = ToLua.ToNumberArray <float>(L, 3); obj.SetFloatArray(arg0, arg1); return(0); } else if (count == 3 && TypeChecker.CheckTypes <string, float[]>(L, 2)) { UnityEngine.Material obj = (UnityEngine.Material)ToLua.CheckObject <UnityEngine.Material>(L, 1); string arg0 = ToLua.ToString(L, 2); float[] arg1 = ToLua.ToNumberArray <float>(L, 3); obj.SetFloatArray(arg0, arg1); return(0); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to method: UnityEngine.Material.SetFloatArray")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
public void ApplyToMaterial(Material material) { material.SetInt("layerCount", layers.Length); // lambda's! material.SetColorArray("baseColors", layers.Select(x => x.tint).ToArray()); material.SetFloatArray("baseStartHeights", layers.Select(x => x.startHeight).ToArray()); material.SetFloatArray("baseBlends", layers.Select(x => x.blendStrength).ToArray()); material.SetFloatArray("baseColorStrengths", layers.Select(x => x.tintStrength).ToArray()); material.SetFloatArray("baseTextureScales", layers.Select(x => x.textureScale).ToArray()); Texture2DArray texturesArray = GenerateTextureArray(layers.Select(x => x.texture).ToArray()); material.SetTexture("baseTextures", texturesArray); UpdateMeshHeights(material, savedMinHeight, savedMaxHeight); }
private void WriteUiforms <TValue>(EditorImporter importer, UnityEngine.Material material, SeinMaterialUniform <TValue>[] uniforms) { foreach (SeinMaterialUniform <TValue> uniform in uniforms) { var name = uniform.name; switch (uniform.type) { case (ESeinMaterialUniformType.FLOAT): material.SetFloat(name, (uniform as SeinMaterialUniformFloat).value); break; case (ESeinMaterialUniformType.INT): material.SetInt(name, (uniform as SeinMaterialUniformInt).value); break; case (ESeinMaterialUniformType.SAMPLER_2D): var tex = importer.GetTexture((uniform as SeinMaterialUniformTexture).id.Id); material.SetTexture(name, tex); break; // todo: support cubemap case (ESeinMaterialUniformType.SAMPLER_CUBE): break; case (ESeinMaterialUniformType.FLOAT_VEC2): var fv2 = (uniform as SeinMaterialUniformFloatVec2).value; material.SetFloatArray(name, new List <float> { fv2.x, fv2.y }); break; case (ESeinMaterialUniformType.FLOAT_VEC3): var fv3 = (uniform as SeinMaterialUniformFloatVec3).value; material.SetFloatArray(name, new List <float> { fv3.x, fv3.y, fv3.z }); break; case (ESeinMaterialUniformType.FLOAT_VEC4): if (uniform.GetType() == typeof(SeinMaterialUniformColor)) { material.SetColor(name, (uniform as SeinMaterialUniformColor).value); } material.SetVector(name, (uniform as SeinMaterialUniformFloatVec4).value); break; case (ESeinMaterialUniformType.FLOAT_MAT2): material.SetMatrix(name, (uniform as SeinMaterialUniformFloatMat2).value); break; case (ESeinMaterialUniformType.FLOAT_MAT3): material.SetMatrix(name, (uniform as SeinMaterialUniformFloatMat3).value); break; case (ESeinMaterialUniformType.FLOAT_MAT4): material.SetMatrix(name, (uniform as SeinMaterialUniformFloatMat4).value); break; default: break; } } }