예제 #1
0
 private void FixedUpdate()
 {
     if (!Neutron.IsMine(isMine))
     {
         GetRigidbody.velocity        = newVelocity;
         GetRigidbody.angularVelocity = newAngularVelocity;
     }
 }
예제 #2
0
 // Update is called once per frame
 void Update()
 {
     if (Neutron.IsMine(isMine))
     {
         if (GetParameters(out object[] parameters))
         {
             using (NeutronWriter streamParams = new NeutronWriter())
             {
                 streamParams.Write(parameters.Serialize());
                 //======================================================================================================================================
                 Neutron.RPC(isMine, 254, ValidationPacket.None, syncTime, streamParams, SendTo.Others, false, Broadcast.Channel, (ProtocolType)(int)protocolType);
             }
         }
     }
 }
예제 #3
0
 void Update()
 {
     if (Neutron.IsMine(isMine))
     {
         if (Input.GetMouseButtonDown(0))
         {
             if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out RaycastHit hit, 500))
             {
                 if (hit.transform.CompareTag("ground"))
                 {
                     Neutron.MoveWithMousePointer(hit.point);
                 }
             }
         }
     }
 }
예제 #4
0
    void Update()
    {
        if (Neutron.IsMine(isMine))
        {
            switch (whenChanging)
            {
            case (WhenChanging) default:
                RPC();
                break;

            case WhenChanging.Position:
                if (transform.position != oldPosition)
                {
                    RPC();
                    oldPosition = transform.position;
                }
                break;

            case WhenChanging.Rotation:
                if (transform.eulerAngles != oldRotation)
                {
                    RPC();
                    oldRotation = transform.eulerAngles;
                }
                break;

            case WhenChanging.Velocity:
                if (GetRigidbody.velocity != oldVelocity)
                {
                    RPC();
                    oldVelocity = GetRigidbody.velocity;
                }
                break;

            case (WhenChanging.Position | WhenChanging.Rotation):
                if (transform.position != oldPosition || transform.eulerAngles != oldRotation)
                {
                    RPC();
                    oldPosition = transform.position;
                    oldRotation = transform.eulerAngles;
                }
                break;

            case (WhenChanging.Velocity | WhenChanging.Position):
                if (transform.position != oldPosition || GetRigidbody.velocity != oldVelocity)
                {
                    RPC();
                    oldPosition = transform.position;
                    oldVelocity = GetRigidbody.velocity;
                }
                break;

            case (WhenChanging.Velocity | WhenChanging.Rotation):
                if (transform.eulerAngles != oldRotation || GetRigidbody.velocity != oldVelocity)
                {
                    RPC();
                    oldRotation = transform.eulerAngles;
                    oldVelocity = GetRigidbody.velocity;
                }
                break;

            case (WhenChanging.Velocity | WhenChanging.Rotation | WhenChanging.Position):
                AnyProperty();
                break;

            default:
                AnyProperty();
                break;
            }
        }
        else
        {
            if (newPosition != Vector3.zero && transform.position != newPosition)
            {
                transform.position = Vector3.Lerp(transform.position, newPosition, LerpTime * Time.deltaTime);
            }
            if (newPosition != Vector3.zero && transform.position != newPosition)
            {
                transform.rotation = Quaternion.Slerp(transform.rotation, newRotation, LerpTime * Time.deltaTime);
            }
        }
    }