SynchronizedTurnSpeed









How do I use Synchronized Turn Speed
Below are practical examples compiled from projects for learning and reference purposes

Featured Snippets


File name: IdleRunJump.cs Copy
33     void Update ()
34     {
35         if( m_PhotonView.isMine == false && PhotonNetwork.connected == true )
36         {
37             return;
38         }
39
40         if (animator)
41         {
42             AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
43
44             if (stateInfo.IsName("Base Layer.Run"))
45             {
46                 if (Input.GetButton("Fire1")) animator.SetBool("Jump", true);
47             }
48             else
49             {
50                 animator.SetBool("Jump", false);
51             }
52
53             if(Input.GetButtonDown("Fire2") && animator.layerCount >= 2)
54             {
55                 animator.SetBool("Hi", !animator.GetBool("Hi"));
56             }
57
58
59             float h = Input.GetAxis("Horizontal");
60             float v = Input.GetAxis("Vertical");
61
62             if( v < 0 )
63             {
64                 v = 0;
65             }
66
67             animator.SetFloat( "Speed", h*h+v*v );
68             animator.SetFloat( "Direction", h, DirectionDampTime, Time.deltaTime );
69
70             float direction = animator.GetFloat( "Direction" );
71
72             float targetSpeedModifier = Mathf.Abs( v );
73
74             if( Mathf.Abs( direction ) > 0.2f )
75             {
76                 targetSpeedModifier = TurnSpeedModifier;
77             }
78
79             m_SpeedModifier = Mathf.MoveTowards( m_SpeedModifier, targetSpeedModifier, Time.deltaTime * 25f );
80
81             Vector3 speed = transform.forward * SynchronizedMaxSpeed * m_SpeedModifier;
82             float turnSpeed = direction * SynchronizedTurnSpeed;
83
84             /*float moveDistance = Vector3.Distance( transform.position, m_LastPosition ) / Time.deltaTime;
85
86             if( moveDistance < 4f && turnSpeed == 0f )
87             {
88                 speed = transform.forward * moveDistance;
89             }*/
90
91             //Debug.Log( moveDistance );
92             //Debug.Log( speed + " - " + speed.magnitude + " - " + speedModifier + " - " + h + " - " + v );
93
94             m_TransformView.SetSynchronizedValues( speed, turnSpeed );
95
96             //m_LastPosition = transform.position;
97          }
98     }
File name: PhotonTransformViewPositionControl.cs Copy
43     public void SetSynchronizedValues( Vector3 speed, float turnSpeed )
44     {
45         m_SynchronizedSpeed = speed;
46         m_SynchronizedTurnSpeed = turnSpeed;
47     }
File name: PhotonTransformViewPositionControl.cs Copy
132     public Vector3 GetExtrapolatedPositionOffset()
133     {
134         float timePassed = (float)( PhotonNetwork.time - m_LastSerializeTime );
135
136         if( m_Model.ExtrapolateIncludingRoundTripTime == true )
137         {
138             timePassed += (float)PhotonNetwork.GetPing() / 1000f;
139         }
140
141         Vector3 extrapolatePosition = Vector3.zero;
142
143         switch( m_Model.ExtrapolateOption )
144         {
145         case PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues:
146             Quaternion turnRotation = Quaternion.Euler( 0, m_SynchronizedTurnSpeed * timePassed, 0 );
147             extrapolatePosition = turnRotation * ( m_SynchronizedSpeed * timePassed );
148             break;
149         case PhotonTransformViewPositionModel.ExtrapolateOptions.FixedSpeed:
150             Vector3 moveDirection = ( m_NetworkPosition - GetOldestStoredNetworkPosition() ).normalized;
151
152             extrapolatePosition = moveDirection * m_Model.ExtrapolateSpeed * timePassed;
153             break;
154         case PhotonTransformViewPositionModel.ExtrapolateOptions.EstimateSpeedAndTurn:
155             Vector3 moveDelta = ( m_NetworkPosition - GetOldestStoredNetworkPosition() ) * PhotonNetwork.sendRateOnSerialize;
156             extrapolatePosition = moveDelta * timePassed;
157             break;
158         }
159
160         return extrapolatePosition;
161     }
File name: PhotonTransformViewPositionControl.cs Copy
183     void SerializeData( Vector3 currentPosition, PhotonStream stream, PhotonMessageInfo info )
184     {
185         stream.SendNext( currentPosition );
186
187         if( m_Model.ExtrapolateOption == PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues ||
188             m_Model.InterpolateOption == PhotonTransformViewPositionModel.InterpolateOptions.SynchronizeValues )
189         {
190             stream.SendNext( m_SynchronizedSpeed );
191             stream.SendNext( m_SynchronizedTurnSpeed );
192         }
193     }
File name: PhotonTransformViewPositionControl.cs Copy
195     void DeserializeData( PhotonStream stream, PhotonMessageInfo info )
196     {
197         m_OldNetworkPositions.Enqueue( m_NetworkPosition );
198
199         while( m_OldNetworkPositions.Count > m_Model.ExtrapolateNumberOfStoredPositions )
200         {
201             m_OldNetworkPositions.Dequeue();
202         }
203
204         m_NetworkPosition = (Vector3)stream.ReceiveNext();
205
206         if( m_Model.ExtrapolateOption == PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues ||
207             m_Model.InterpolateOption == PhotonTransformViewPositionModel.InterpolateOptions.SynchronizeValues )
208         {
209             m_SynchronizedSpeed = (Vector3)stream.ReceiveNext();
210             m_SynchronizedTurnSpeed = (float)stream.ReceiveNext();
211         }
212     }

SynchronizedTurnSpeed 136 lượt xem

Gõ tìm kiếm nhanh...