Example #1
0
    [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);
        }
    }
Example #2
0
    [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;
            }
        }
    }