スクリプト
Arduino
void setup() { Serial.begin( 9600 ); pinMode( 13, OUTPUT ); pinMode( 12, OUTPUT ); } void loop() { if ( Serial.available() <= 0 ) return; int data = Serial.read(); digitalWrite( 13, ( data & 1 ) != 0 ? HIGH : LOW ); digitalWrite( 12, ( data & 2 ) != 0 ? HIGH : LOW ); Serial.flush(); }
Unity
using System; using System.IO.Ports; using UnityEditor; public static class Example { [Flags] private enum State { NONE = 0, PLAYING = 1 << 0, PAUSED = 1 << 1, } [InitializeOnLoadMethod] private static void Init() { var serial = new SerialPort( "COM3", 9600 ); serial.Open(); EditorApplication.playmodeStateChanged = () => { var isPlaying = EditorApplication.isPlaying; var isPaused = EditorApplication.isPaused; var state = State.NONE; state |= isPlaying ? State.PLAYING : State.NONE; state |= isPaused ? State.PAUSED : State.NONE; serial.Write( new byte[] { ( byte )state }, 0, 1 ); }; } }