DeserializeComponent
How do I use Deserialize Component
Below are practical examples compiled from projects for learning and reference purposes
Featured Snippets
Line | Code | Ex.. |
---|---|---|
340 | DeserializeComponent( observed, stream, info ); | 1 |
348 | internal protected void DeserializeComponent( Component component, PhotonStream stream, PhotonMessageInfo info ) | 2 |
File name: PhotonView.cs
Copy
338 public void DeserializeView( PhotonStream stream, PhotonMessageInfo info )
339 {
340 DeserializeComponent( observed, stream, info );
341
342 for( int i = 0; i < ObservedComponents.Count; ++i )
343 {
344 DeserializeComponent( ObservedComponents[ i ], stream, info );
345 }
346 }
File name: PhotonView.cs
Copy
348 internal protected void DeserializeComponent( Component component, PhotonStream stream, PhotonMessageInfo info )
349 {
350 if( component == null )
351 {
352 return;
353 }
354
355 // Use incoming data according to observed type
356 if( component is MonoBehaviour )
357 {
358 ExecuteComponentOnSerialize( component, stream, info );
359 }
360 else if( component is Transform )
361 {
362 Transform trans = (Transform)component;
363
364 switch( onSerializeTransformOption )
365 {
366 case OnSerializeTransform.All:
367 trans.localPosition = (Vector3)stream.ReceiveNext();
368 trans.localRotation = (Quaternion)stream.ReceiveNext();
369 trans.localScale = (Vector3)stream.ReceiveNext();
370 break;
371 case OnSerializeTransform.OnlyPosition:
372 trans.localPosition = (Vector3)stream.ReceiveNext();
373 break;
374 case OnSerializeTransform.OnlyRotation:
375 trans.localRotation = (Quaternion)stream.ReceiveNext();
376 break;
377 case OnSerializeTransform.OnlyScale:
378 trans.localScale = (Vector3)stream.ReceiveNext();
379 break;
380 case OnSerializeTransform.PositionAndRotation:
381 trans.localPosition = (Vector3)stream.ReceiveNext();
382 trans.localRotation = (Quaternion)stream.ReceiveNext();
383 break;
384 }
385 }
386 else if( component is Rigidbody )
387 {
388 Rigidbody rigidB = (Rigidbody)component;
389
390 switch( onSerializeRigidBodyOption )
391 {
392 case OnSerializeRigidBody.All:
393 rigidB.velocity = (Vector3)stream.ReceiveNext();
394 rigidB.angularVelocity = (Vector3)stream.ReceiveNext();
395 break;
396 case OnSerializeRigidBody.OnlyAngularVelocity:
397 rigidB.angularVelocity = (Vector3)stream.ReceiveNext();
398 break;
399 case OnSerializeRigidBody.OnlyVelocity:
400 rigidB.velocity = (Vector3)stream.ReceiveNext();
401 break;
402 }
403 }
404 else if( component is Rigidbody2D )
405 {
406 Rigidbody2D rigidB = (Rigidbody2D)component;
407
408 switch( onSerializeRigidBodyOption )
409 {
410 case OnSerializeRigidBody.All:
411 rigidB.velocity = (Vector2)stream.ReceiveNext();
412 rigidB.angularVelocity = (float)stream.ReceiveNext();
413 break;
414 case OnSerializeRigidBody.OnlyAngularVelocity:
415 rigidB.angularVelocity = (float)stream.ReceiveNext();
416 break;
417 case OnSerializeRigidBody.OnlyVelocity:
418 rigidB.velocity = (Vector2)stream.ReceiveNext();
419 break;
420 }
421 }
422 else
423 {
424 Debug.LogError( "Type of observed is unknown when receiving." );
425 }
426 }
DeserializeComponent 94 lượt xem
Gõ tìm kiếm nhanh...