Skip to content

Commit dfbf8ae

Browse files
committed
use Unity materials instead of FBX materials in Linked Prefab
1 parent 49f95dc commit dfbf8ae

File tree

2 files changed

+6
-15
lines changed

2 files changed

+6
-15
lines changed

com.unity.formats.fbx/Editor/ConvertToNestedPrefab.cs

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -930,27 +930,16 @@ internal static void CopyComponents(GameObject to, GameObject from, GameObject r
930930
}
931931

932932
FixSceneReferences(fromComponent, toComponent, root);
933-
934-
// Do not try to copy materials for ParticleSystemRenderer, since it is not in the
935-
// FBX file
936-
if (fromComponent is Renderer && !(fromComponent is ParticleSystemRenderer))
937-
{
938-
var renderer = toComponent as Renderer;
939-
var sharedMaterials = renderer.sharedMaterials;
940-
EditorJsonUtility.FromJsonOverwrite(json, toComponent);
941-
renderer.sharedMaterials = sharedMaterials;
942-
}
933+
943934
// SkinnedMeshRenderer stores both the mesh and materials.
944935
// Make sure these do not get copied over when the SkinnedMeshRenderer is updated.
945-
else if (fromComponent is SkinnedMeshRenderer)
936+
if (fromComponent is SkinnedMeshRenderer)
946937
{
947938
var skinnedMesh = toComponent as SkinnedMeshRenderer;
948939
var mesh = skinnedMesh.sharedMesh;
949-
var materials = skinnedMesh.sharedMaterials;
950940
EditorJsonUtility.FromJsonOverwrite(json, toComponent);
951941
var toSkinnedMesh = toComponent as SkinnedMeshRenderer;
952942
toSkinnedMesh.sharedMesh = mesh;
953-
toSkinnedMesh.sharedMaterials = materials;
954943
}
955944
else
956945
{

com.unity.formats.fbx/Tests/FbxTests/ConvertToModelTest.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,15 +107,17 @@ protected void AssertSameMeshesAndMaterials(GameObject expectedHierarchy, GameOb
107107
{
108108
Assert.That(actualSkinnedMesh);
109109
Assert.That(expectedSkinnedMesh.sharedMesh, Is.EqualTo(actualSkinnedMesh.sharedMesh));
110-
Assert.That(expectedSkinnedMesh.sharedMaterial, Is.EqualTo(actualSkinnedMesh.sharedMaterial));
110+
// material should not equal what is in the FBX, but what was originally in the scene
111+
Assert.That(expectedSkinnedMesh.sharedMaterial, Is.Not.EqualTo(actualSkinnedMesh.sharedMaterial));
111112
}
112113

113114
var expectedRenderer = expectedHierarchy.GetComponent<Renderer>();
114115
var actualRenderer = actualHierarchy.GetComponent<Renderer>();
115116
if (expectedRenderer)
116117
{
117118
Assert.That(actualRenderer);
118-
Assert.That(expectedRenderer.sharedMaterial, Is.EqualTo(actualRenderer.sharedMaterial));
119+
// material should not equal what is in the FBX, but what was originally in the scene
120+
Assert.That(expectedRenderer.sharedMaterial, Is.Not.EqualTo(actualRenderer.sharedMaterial));
119121
}
120122

121123
var expectedTransform = expectedHierarchy.transform;

0 commit comments

Comments
 (0)