Пример #1
0
    private void RpcPassDrothyReference(NetworkInstanceId netId)
    {
        Debug.Log(System.Reflection.MethodBase.GetCurrentMethod());

        var obj = ClientScene.FindLocalObject(netId);

        drothy = obj.GetComponent <DrothySample>();
    }
Пример #2
0
    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);
    }
Пример #3
0
    // 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();
        }
    }