Skip to content

Commit d2ecf96

Browse files
committed
[feat] support using multimesh transfer
1 parent ca8c77e commit d2ecf96

File tree

1 file changed

+5
-32
lines changed

1 file changed

+5
-32
lines changed

Runtime/NetworkPlayer.cs

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,15 @@ public class NetworkPlayer : NetworkBehaviour
1919

2020
public static string InputUrl = string.Empty;
2121
public NetworkVariable<FixedString64Bytes> avatarUrl = new NetworkVariable<FixedString64Bytes>(writePerm: NetworkVariableWritePermission.Owner);
22-
public event Action OnPLayerLoadComplete;
23-
24-
private Animator animator;
25-
22+
public event Action OnPlayerLoadComplete;
23+
2624
private Transform leftEye;
2725
private Transform rightEye;
2826

29-
private SkinnedMeshRenderer[] skinnedMeshRenderers;
30-
3127
private void Awake()
3228
{
33-
animator = GetComponent<Animator>();
34-
3529
leftEye = transform.Find(FULL_BODY_LEFT_EYE_BONE_NAME);
3630
rightEye = transform.Find(FULL_BODY_RIGHT_EYE_BONE_NAME);
37-
38-
skinnedMeshRenderers = GetComponentsInChildren<SkinnedMeshRenderer>();
3931
}
4032

4133
public override void OnNetworkSpawn()
@@ -71,29 +63,10 @@ private void LoadAvatar(string url)
7163
leftEye.transform.localPosition = args.Avatar.transform.Find(FULL_BODY_LEFT_EYE_BONE_NAME).localPosition;
7264
rightEye.transform.localPosition = args.Avatar.transform.Find(FULL_BODY_RIGHT_EYE_BONE_NAME).localPosition;
7365

74-
TransferMesh(args.Avatar);
66+
AvatarMeshHelper.TransferMesh(args.Avatar, gameObject);
67+
Destroy(args.Avatar);
68+
OnPlayerLoadComplete?.Invoke();
7569
};
7670
}
77-
78-
//TODO: Multiple mesh transfer support.
79-
private void TransferMesh(GameObject source)
80-
{
81-
var sourceAnimator = source.GetComponentInChildren<Animator>();
82-
SkinnedMeshRenderer[] sourceMeshes = source.GetComponentsInChildren<SkinnedMeshRenderer>();
83-
84-
for (var i = 0; i < sourceMeshes.Length; i++)
85-
{
86-
Mesh mesh = sourceMeshes[i].sharedMesh;
87-
skinnedMeshRenderers[i].sharedMesh = mesh;
88-
89-
Material[] materials = sourceMeshes[i].sharedMaterials;
90-
skinnedMeshRenderers[i].sharedMaterials = materials;
91-
}
92-
93-
Avatar avatar = sourceAnimator.avatar;
94-
animator.avatar = avatar;
95-
OnPLayerLoadComplete?.Invoke();
96-
Destroy(source);
97-
}
9871
}
9972
}

0 commit comments

Comments
 (0)