[Command] public void CmdRequestTool(int toolIndex, int hand) { if (toolIndex >= toolList.Length) { return; } GameObject toolB = toolList[toolIndex]; GameObject toolO = Instantiate(toolB); if (NetworkServer.SpawnWithClientAuthority(toolO, playerO)) { DC_Avatar_Tool tool = toolO.GetComponent <DC_Avatar_Tool>(); tool.avatarO = gameObject; tool.playerO = playerO; if (hand == 0) { if (rightToolO) { Network.Destroy(rightToolO); } rightToolO = toolO; } else { if (leftToolO) { Network.Destroy(leftToolO); } leftToolO = toolO; } tool.RpcSetAvatar(gameObject); RpcSetAvatarTool(toolO, hand); } }
[ClientRpc] public void RpcSetAvatarTool(GameObject toolO, int hand) { DC_Avatar_Tool tool = toolO.GetComponent <DC_Avatar_Tool>(); if (tool) { Transform h = hand == 0 ? rightPaw.transform : leftPaw.transform; toolO.transform.parent = h; toolO.transform.localEulerAngles = Vector3.zero; toolO.transform.localPosition = Vector3.zero; if (hand == 0) { rightTool = tool; } else { leftTool = tool; } } }