public FBXMaterial __deref__() { global::System.IntPtr cPtr = FBXImporterUnmanagedPINVOKE.FBXMaterialPtr___deref__(swigCPtr); FBXMaterial ret = (cPtr == global::System.IntPtr.Zero) ? null : new FBXMaterial(cPtr, false); return(ret); }
void SetMaterial(GameObject goNode) { Renderer rend = goNode.GetComponent<Renderer>(); SkinnedMeshRenderer skinRend = goNode.GetComponent<SkinnedMeshRenderer>(); if (rend != null || skinRend != null) { int iMaterialCount = FBXImporterGetMaterialCount(goNode.name); Material[] mats = new Material[iMaterialCount]; for (int i = 0; i < iMaterialCount; i++) { IntPtr pFBXMaterial = FBXImporterGetMaterial(goNode.name, i, bInputTextureFullPath); if (pFBXMaterial != IntPtr.Zero) { FBXMaterial sFBXMaterial = new FBXMaterial(); IntPtr pFBXNodeMaterial = Marshal.AllocHGlobal(Marshal.SizeOf(sFBXMaterial)); try { sFBXMaterial = (FBXMaterial)Marshal.PtrToStructure(pFBXMaterial, typeof(FBXMaterial)); } finally { Marshal.FreeHGlobal(pFBXNodeMaterial); } float[] fDiffuse = new float[3]; fDiffuse[0] = 0.0f; fDiffuse[1] = 0.0f; fDiffuse[2] = 0.0f; Marshal.Copy(sFBXMaterial.fDiffuse, fDiffuse, 0, 3); float[] fTransparency = new float[1]; fTransparency[0] = 0.0f; Marshal.Copy(sFBXMaterial.fTransparency, fTransparency, 0, 1); mats[i] = new Material(Shader.Find("Standard")); mats[i].color = new Color(fDiffuse[0], fDiffuse[1], fDiffuse[2], 1.0f - fTransparency[0]); string strTextureDiffuseName = Marshal.PtrToStringAnsi(sFBXMaterial.strTextureDiffuseName); // Set Texture SetTexture(mats[i], strTextureDiffuseName); } } if (skinRend != null) { if (rend != null) { Destroy(goNode.GetComponent<MeshFilter>()); Destroy(rend); } skinRend.materials = mats; } else { if (rend != null) { rend.materials = mats; } } } }
public FBXMaterial __ref__() { FBXMaterial ret = new FBXMaterial(FBXImporterUnmanagedPINVOKE.FBXMaterialPtr___ref__(swigCPtr), false); return(ret); }
public FBXMaterialPtr(FBXMaterial p) : this(FBXImporterUnmanagedPINVOKE.new_FBXMaterialPtr__SWIG_1(FBXMaterial.getCPtr(p)), true) { }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(FBXMaterial obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }
void SetMaterial(GameObject goNode) { Renderer rend = goNode.GetComponent<Renderer>(); SkinnedMeshRenderer skinRend = goNode.GetComponent<SkinnedMeshRenderer>(); if (rend != null || skinRend != null) { int iMaterialCount = FBXImporterGetMaterialCount(goNode.name); Material[] mats = new Material[iMaterialCount]; int k = 0; for (int i = 0; i < iMaterialCount; i++) { IntPtr pFBXMaterial = FBXImporterGetMaterial(goNode.name, i, bInputTextureFullPath); if (pFBXMaterial != IntPtr.Zero) { FBXMaterial sFBXMaterial = new FBXMaterial(); IntPtr pFBXMaterialT = Marshal.AllocHGlobal(Marshal.SizeOf(sFBXMaterial)); try { sFBXMaterial = (FBXMaterial)Marshal.PtrToStructure(pFBXMaterial, typeof(FBXMaterial)); } finally { Marshal.FreeHGlobal(pFBXMaterialT); } if (Marshal.PtrToStringAnsi(sFBXMaterial.strMaterialName).ToString() == "CgfxShader") { /* string strCgfxTexturTypes = ""; string strCgfxTextureNames = ""; if (sFBXMaterial.strCgfxTextureTypes != null) { strCgfxTexturTypes = Marshal.PtrToStringAnsi(sFBXMaterial.strCgfxTextureTypes); } if (sFBXMaterial.strCgfxTextureNames != null) { strCgfxTextureNames = Marshal.PtrToStringAnsi(sFBXMaterial.strCgfxTextureNames); } */ continue; } else { float[] fDiffuse = new float[3]; fDiffuse[0] = 0.0f; fDiffuse[1] = 0.0f; fDiffuse[2] = 0.0f; Marshal.Copy(sFBXMaterial.fDiffuse, fDiffuse, 0, 3); float[] fTransparency = new float[1]; fTransparency[0] = 0.0f; Marshal.Copy(sFBXMaterial.fTransparency, fTransparency, 0, 1); mats[k] = new Material(Shader.Find("Standard")); mats[k].color = new Color(fDiffuse[0], fDiffuse[1], fDiffuse[2], 1.0f - fTransparency[0]); string strTextureDiffuseName = Marshal.PtrToStringAnsi(sFBXMaterial.strTextureDiffuseName); // Set Texture (Shader: Off) SetTexture(mats[k], "", strTextureDiffuseName, false); } } k++; } if (skinRend != null) { if (rend != null) { Destroy(goNode.GetComponent<MeshFilter>()); Destroy(rend); } if (k > 1) { skinRend.materials = mats; } else { skinRend.material = mats[0]; } } else { if (rend != null) { if (k > 1) { rend.materials = mats; } else { rend.material = mats[0]; } } } } }
void SetMaterial(GameObject goNode) { Renderer rend = goNode.GetComponent <Renderer>(); SkinnedMeshRenderer skinRend = goNode.GetComponent <SkinnedMeshRenderer>(); if (rend != null || skinRend != null) { int iMaterialCount = FBXImporterGetMaterialCount(goNode.name); Material[] mats = new Material[iMaterialCount]; for (int i = 0; i < iMaterialCount; i++) { IntPtr pFBXMaterial = FBXImporterGetMaterial(goNode.name, i, bInputTextureFullPath); if (pFBXMaterial != IntPtr.Zero) { FBXMaterial sFBXMaterial = new FBXMaterial(); IntPtr pFBXNodeMaterial = Marshal.AllocHGlobal(Marshal.SizeOf(sFBXMaterial)); try { sFBXMaterial = (FBXMaterial)Marshal.PtrToStructure(pFBXMaterial, typeof(FBXMaterial)); } finally { Marshal.FreeHGlobal(pFBXNodeMaterial); } float[] fDiffuse = new float[3]; fDiffuse[0] = 0.0f; fDiffuse[1] = 0.0f; fDiffuse[2] = 0.0f; Marshal.Copy(sFBXMaterial.fDiffuse, fDiffuse, 0, 3); float[] fTransparency = new float[1]; fTransparency[0] = 0.0f; Marshal.Copy(sFBXMaterial.fTransparency, fTransparency, 0, 1); mats[i] = new Material(Shader.Find("Standard")); mats[i].color = new Color(fDiffuse[0], fDiffuse[1], fDiffuse[2], 1.0f - fTransparency[0]); string strTextureDiffuseName = Marshal.PtrToStringAnsi(sFBXMaterial.strTextureDiffuseName); // Set Texture SetTexture(mats[i], strTextureDiffuseName); } } if (skinRend != null) { if (rend != null) { Destroy(goNode.GetComponent <MeshFilter>()); Destroy(rend); } skinRend.materials = mats; } else { if (rend != null) { rend.materials = mats; } } } }