TeleportEnabled
How do I use Teleport Enabled
Below are practical examples compiled from projects for learning and reference purposes
Featured Snippets
Line | Code | Ex.. |
---|---|---|
254 | EditorGUI.PropertyField(propertyRect, serializedObject.FindProperty("m_PositionModel.TeleportEnabled"), | 1 |
107 | if( m_Model.TeleportEnabled == true ) | 2 |
File name: PhotonTransformViewEditor.cs
Copy
252 private void DrawTeleport(ref Rect propertyRect)
253 {
254 EditorGUI.PropertyField(propertyRect, serializedObject.FindProperty("m_PositionModel.TeleportEnabled"),
255 new GUIContent("Enable teleport for great distances"));
256 propertyRect.y += EDITOR_LINE_HEIGHT;
257
258 EditorGUI.PropertyField(propertyRect, serializedObject.FindProperty("m_PositionModel.TeleportIfDistanceGreaterThan"),
259 new GUIContent("Teleport if distance greater than"));
260 propertyRect.y += EDITOR_LINE_HEIGHT;
261 }
File name: PhotonTransformViewPositionControl.cs
Copy
54 public Vector3 UpdatePosition( Vector3 currentPosition )
55 {
56 Vector3 targetPosition = GetNetworkPosition() + GetExtrapolatedPositionOffset();
57
58 switch( m_Model.InterpolateOption )
59 {
60 case PhotonTransformViewPositionModel.InterpolateOptions.Disabled:
61 if( m_UpdatedPositionAfterOnSerialize == false )
62 {
63 currentPosition = targetPosition;
64 m_UpdatedPositionAfterOnSerialize = true;
65 }
66 break;
67 case PhotonTransformViewPositionModel.InterpolateOptions.FixedSpeed:
68 currentPosition = Vector3.MoveTowards( currentPosition, targetPosition, Time.deltaTime * m_Model.InterpolateMoveTowardsSpeed );
69 break;
70 case PhotonTransformViewPositionModel.InterpolateOptions.EstimatedSpeed:
71 int positionsCount = Mathf.Min( 1, m_OldNetworkPositions.Count );
72 float estimatedSpeed = Vector3.Distance( m_NetworkPosition, GetOldestStoredNetworkPosition() ) / positionsCount;
73 currentPosition = Vector3.MoveTowards( currentPosition, targetPosition, Time.deltaTime * estimatedSpeed );
74 break;
75 case PhotonTransformViewPositionModel.InterpolateOptions.SynchronizeValues:
76 if( m_SynchronizedSpeed.magnitude == 0 )
77 {
78 currentPosition = targetPosition;
79 }
80 else
81 {
82 currentPosition = Vector3.MoveTowards( currentPosition, targetPosition, Time.deltaTime * m_SynchronizedSpeed.magnitude );
83 }
84 break;
85 case PhotonTransformViewPositionModel.InterpolateOptions.Lerp:
86 currentPosition = Vector3.Lerp( currentPosition, targetPosition, Time.deltaTime * m_Model.InterpolateLerpSpeed );
87 break;
88 /*case PhotonTransformViewPositionModel.InterpolateOptions.MoveTowardsComplex:
89 float distanceToTarget = Vector3.Distance( currentPosition, targetPosition );
90 float targetSpeed = m_Model.InterpolateSpeedCurve.Evaluate( distanceToTarget ) * m_Model.InterpolateMoveTowardsSpeed;
91
92 if( targetSpeed > m_CurrentSpeed )
93 {
94 m_CurrentSpeed = Mathf.MoveTowards( m_CurrentSpeed, targetSpeed, Time.deltaTime * m_Model.InterpolateMoveTowardsAcceleration );
95 }
96 else
97 {
98 m_CurrentSpeed = Mathf.MoveTowards( m_CurrentSpeed, targetSpeed, Time.deltaTime * m_Model.InterpolateMoveTowardsDeceleration );
99 }
100
101 //Debug.Log( m_CurrentSpeed + " - " + targetSpeed + " - " + transform.localPosition + " - " + targetPosition );
102
103 currentPosition = Vector3.MoveTowards( currentPosition, targetPosition, Time.deltaTime * m_CurrentSpeed );
104 break;*/
105 }
106
107 if( m_Model.TeleportEnabled == true )
108 {
109 if( Vector3.Distance( currentPosition, GetNetworkPosition() ) > m_Model.TeleportIfDistanceGreaterThan )
110 {
111 currentPosition = GetNetworkPosition();
112 }
113 }
114
115 return currentPosition;
116 }
TeleportEnabled 121 lượt xem
Gõ tìm kiếm nhanh...