private void RpcPassDrothyReference(NetworkInstanceId netId) { Debug.Log(System.Reflection.MethodBase.GetCurrentMethod()); var obj = ClientScene.FindLocalObject(netId); drothy = obj.GetComponent <DrothySample>(); }
private void CmdCreateDrothy() { Debug.Log(System.Reflection.MethodBase.GetCurrentMethod()); drothy = Instantiate(drothyPrefab); drothy.SetOwner(this.transform); // NetworkServer.Spawn(drothy.gameObject); NetworkServer.SpawnWithClientAuthority(drothy.gameObject, gameObject); drothyNetId = drothy.netId; RpcPassDrothyReference(drothy.netId); }
// Update is called once per frame void Update() { // textItem.text = ""+iItemCount; textMesh.text = netIdStr; if (isObserver != isObserverPrev) { observerSign.material.color = isObserver ? Color.red : Color.white; } isObserverPrev = isObserver; youIcon.SetActive(isLocalPlayer); if (holdItem) { holdItem.transform.position = holdPos.position; // holdItem.GetComponent<NetworkIdentity>().AssignClientAuthority( connectionToClient ); // CmdUpdateHoldItemPosition(); } if (isClient) { if (drothy == null) { var obj = ClientScene.FindLocalObject(drothyNetId); if (obj) { drothy = obj.GetComponent <DrothySample>(); } } if (drothy != null) { drothy.transform.localScale = Vector3.one * drothyScale; } } // ■ここから↓はローカルプレイヤーのみ■ if (!nTransform.isLocalPlayer) { return; } Vector3 move = new Vector3( Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical")); transform.Translate(move * moveSpeed * Time.deltaTime); // myRigidbody.velocity = (transform.forward + move.normalized) * fSpeed ; var rot = Input.GetKey(KeyCode.I) ? -1 : Input.GetKey(KeyCode.O) ? 1 : 0; if (rot != 0) { transform.Rotate(Vector3.up * rot * rotSpeed * Time.deltaTime); } if (Input.GetKeyDown(KeyCode.Space)) { CmdFire(); } if (Input.GetKeyDown(KeyCode.Space) && isObserver) { CmdCreateMushroom(); } if (Input.GetKeyDown(KeyCode.N) && isObserver) { CmdGotoNextScene(); } if (holdTarget && !holdItem && Input.GetKeyDown(KeyCode.H)) { CmdSetHoldItem(); } if (holdItem && Input.GetKeyDown(KeyCode.Y)) { CmdEatItem(); } if (holdTarget && Vector3.Distance(transform.position, holdTarget.transform.position) > 5f) { holdTarget = null; CmdReleaseHoldTarget(); } }