Turns
How do I use Turns
Below are practical examples compiled from projects for learning and reference purposes
Featured Snippets
File name: HubGui.cs
Copy
28 void OnGUI()
29 {
30 GUI.skin = this.Skin;
31 GUILayout.Space(10);
32
33 GUILayout.BeginHorizontal();
34 GUILayout.Space(10);
35 scrollPos = GUILayout.BeginScrollView(scrollPos, GUILayout.Width(320));
36
37 GUILayout.Label("Basics", m_Headline);
38 if (GUILayout.Button("Demo Boxes", GUILayout.Width(280)))
39 {
40 demoDescription = "
41 demoBtn = new DemoBtn() { Text = "Start", Link = "DemoBoxes-Scene" };
42 }
43 if (GUILayout.Button("Demo Worker", GUILayout.Width(280)))
44 {
45 demoDescription = "
46 demoBtn = new DemoBtn() { Text = "Start", Link = "DemoWorker-Scene" };
47 }
48 if (GUILayout.Button("Movement Smoothing", GUILayout.Width(280)))
49 {
50 demoDescription = "
51 demoBtn = new DemoBtn() { Text = "Start", Link = "DemoSynchronization-Scene" };
52 }
53
54 GUILayout.Label("Advanced", m_Headline);
55 if (GUILayout.Button("Ownership Transfer", GUILayout.Width(280)))
56 {
57 demoDescription = "
58 this.demoBtn = new DemoBtn() { Text = "Start", Link = "DemoChangeOwner-Scene" };
59 this.webLink = new DemoBtn();
60 }
61 if (GUILayout.Button("Pickup, Teams, Scores", GUILayout.Width(280)))
62 {
63 demoDescription = "
64 this.demoBtn = new DemoBtn() { Text = "Start", Link = "DemoPickup-Scene" };
65 this.webLink = new DemoBtn();
66 }
67
68 GUILayout.Label("Feature Demos", m_Headline);
69 if (GUILayout.Button("Chat", GUILayout.Width(280)))
70 {
71 demoDescription = "
72 this.demoBtn = new DemoBtn() { Text = "Start", Link = "DemoChat-Scene" };
73 this.webLink = new DemoBtn();
74 }
75 if (GUILayout.Button("RPG Movement", GUILayout.Width(280)))
76 {
77 demoDescription = "
78 this.demoBtn = new DemoBtn() { Text = "Start", Link = "DemoRPGMovement-Scene" };
79 this.webLink = new DemoBtn();
80 }
81 if (GUILayout.Button("Mecanim Animations", GUILayout.Width(280)))
82 {
83 demoDescription = "
84 this.demoBtn = new DemoBtn() { Text = "Start", Link = "DemoMecanim-Scene" };
85 this.webLink = new DemoBtn();
86 }
87 if (GUILayout.Button("2D Game", GUILayout.Width(280)))
88 {
89 demoDescription = "
90 this.demoBtn = new DemoBtn() { Text = "Start", Link = "Demo2DJumpAndRunWithPhysics-Scene" };
91 this.webLink = new DemoBtn();
92 }
93 if (GUILayout.Button("Friends & Authentication", GUILayout.Width(280)))
94 {
95 demoDescription = "
96 this.demoBtn = new DemoBtn() { Text = "Start", Link = "DemoFriends-Scene" };
97 this.webLink = new DemoBtn();
98 }
99
100 GUILayout.Label("Tutorial", m_Headline);
101 if (GUILayout.Button("Marco Polo Tutorial", GUILayout.Width(280)))
102 {
103 demoDescription = "
104 this.demoBtn = new DemoBtn() { Text = "Start", Link = "MarcoPolo-Scene" };
105 this.webLink = new DemoBtn() { Text = "Open Tutorial (www)", Link = "http://tinyurl.com/nmylf44" };
106 }
107 GUILayout.EndScrollView();
108
109 GUILayout.BeginVertical(GUILayout.Width(Screen.width - 345));
110 GUILayout.Label(demoDescription);
111 GUILayout.Space(10);
112 if (!string.IsNullOrEmpty(this.demoBtn.Text))
113 {
114 if (GUILayout.Button(this.demoBtn.Text))
115 {
116 Application.LoadLevel(this.demoBtn.Link);
117 }
118 }
119 if (!string.IsNullOrEmpty(this.webLink.Text))
120 {
121 if (GUILayout.Button(this.webLink.Text))
122 {
123 Application.OpenURL(this.webLink.Link);
124 }
125 }
126 GUILayout.EndVertical();
127
128
129 GUILayout.EndHorizontal();
130 }
File name: RPGMovement.cs
Copy
85 void ResetSpeedValues()
86 {
87 m_CurrentMovement = Vector3.zero;
88 m_CurrentTurnSpeed = 0;
89 }
File name: RPGMovement.cs
Copy
91 void ApplySynchronizedValues()
92 {
93 m_TransformView.SetSynchronizedValues( m_CurrentMovement, m_CurrentTurnSpeed );
94 }
File name: RPGMovement.cs
Copy
135 void UpdateRotateMovement()
136 {
137 if( Input.GetKey( KeyCode.A ) == true )
138 {
139 m_CurrentTurnSpeed = -RotateSpeed;
140 transform.Rotate( 0, -RotateSpeed * Time.deltaTime, 0 );
141 }
142
143 if( Input.GetKey( KeyCode.D ) == true )
144 {
145 m_CurrentTurnSpeed = RotateSpeed;
146 transform.Rotate( 0, RotateSpeed * Time.deltaTime, 0 );
147 }
148 }
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: PhotonTransformView.cs
Copy
97 public void SetSynchronizedValues( Vector3 speed, float turnSpeed )
98 {
99 m_PositionControl.SetSynchronizedValues( speed, turnSpeed );
100 }
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 }
Turns 111 lượt xem
Gõ tìm kiếm nhanh...