41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using UnityEngine;
 | |
| 
 | |
| namespace RoboidControl.Unity {
 | |
| 
 | |
|     public class Participant : MonoBehaviour {
 | |
|         public string ipAddress;
 | |
|         public int port;
 | |
| 
 | |
|         public RoboidControl.Participant coreParticipant;
 | |
| 
 | |
|         protected virtual void Update() {
 | |
|             if (coreParticipant == null)
 | |
|                 return;
 | |
| 
 | |
|             if (coreParticipant.updateQueue.TryDequeue(out RoboidControl.Participant.UpdateEvent e))
 | |
|                 HandleUpdateEvent(e);
 | |
|         }
 | |
| 
 | |
|         private void HandleUpdateEvent(RoboidControl.Participant.UpdateEvent e) {
 | |
|             switch (e.messageId) {
 | |
|                 case ThingMsg.id:
 | |
|                     HandleThingEvent(e);
 | |
|                     break;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void HandleThingEvent(RoboidControl.Participant.UpdateEvent e) {
 | |
|             switch (e.thing) {
 | |
|                 case RoboidControl.TouchSensor coreTouchSensor:
 | |
|                     TouchSensor touchSensor = TouchSensor.Create(coreTouchSensor);
 | |
|                     coreTouchSensor.component = touchSensor;
 | |
|                     break;
 | |
|                 case RoboidControl.Thing coreThing:
 | |
|                     Thing thing = Thing.Create(coreThing);
 | |
|                     coreThing.component = thing;
 | |
|                     break;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|     }
 | |
| } |