-
Notifications
You must be signed in to change notification settings - Fork 124
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #32 from fx-lange/example/simpleReceiver
Example/simple receiver
- Loading branch information
Showing
4 changed files
with
450 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,10 +5,28 @@ Open Sound Control classes and API for the Unity 3d game engine | |
Based on Bespoke Open Sound Control Library by Paul Varcholik ([email protected]). | ||
Licensed under MIT license. | ||
|
||
##How to use | ||
## How to use | ||
|
||
### Install | ||
|
||
Copy the src/Editor folder contents to the corresponding Editor/ folder of your Unity project. The rest can go to your e.g. Assets/ folder of the same project. | ||
|
||
### Usage | ||
|
||
There are two different approaches to use the plugin: | ||
|
||
#### OSCHandler | ||
|
||
The first and original approach works by modifying and initializing the `OSCHandler`. It is a Singleton handling your client & server connections and sending & receiving OSC data. Additionally, all incoming and outgoing messages are logged and can be viewed in an Editor Window. | ||
|
||
Check the documentation below for more detailed instructions. | ||
|
||
#### OSCReceiver | ||
|
||
The second approach is a simple `OSCReceiver` which only supports receiving OSC data but with the benefits of reduced complexity and a thread-safe `OSCMessage` queue. | ||
|
||
After opening a server connection by `OSCReceiver.Open(int port)` you can easily receive new OSCMessages via `OSCReceiver.getNextMessage()`. Always make sure there are OSCMessages available by using `OSCReceiver.hasWaitingMessages()` before trying to receive new ones. | ||
|
||
## Documentation and examples of usage | ||
|
||
docs/doxygen/html/index.html | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
using System.Collections; | ||
using System.Collections.Generic; | ||
using UnityEngine; | ||
using UnityOSC; | ||
|
||
public class SimpleReceiverExample : MonoBehaviour { | ||
|
||
private OSCReciever reciever; | ||
|
||
public int port = 8338; | ||
|
||
// Use this for initialization | ||
void Start () { | ||
reciever = new OSCReciever(); | ||
reciever.Open(port); | ||
} | ||
|
||
// Update is called once per frame | ||
void Update () { | ||
if(reciever.hasWaitingMessages()){ | ||
OSCMessage msg = reciever.getNextMessage(); | ||
Debug.Log(string.Format("message received: {0} {1}", msg.Address, DataToString(msg.Data))); | ||
} | ||
} | ||
|
||
private string DataToString(List<object> data) | ||
{ | ||
string buffer = ""; | ||
|
||
for(int i = 0; i < data.Count; i++) | ||
{ | ||
buffer += data[i].ToString() + " "; | ||
} | ||
|
||
buffer += "\n"; | ||
|
||
return buffer; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,293 @@ | ||
%YAML 1.1 | ||
%TAG !u! tag:unity3d.com,2011: | ||
--- !u!29 &1 | ||
OcclusionCullingSettings: | ||
m_ObjectHideFlags: 0 | ||
serializedVersion: 2 | ||
m_OcclusionBakeSettings: | ||
smallestOccluder: 5 | ||
smallestHole: 0.25 | ||
backfaceThreshold: 100 | ||
m_SceneGUID: 00000000000000000000000000000000 | ||
m_OcclusionCullingData: {fileID: 0} | ||
--- !u!104 &2 | ||
RenderSettings: | ||
m_ObjectHideFlags: 0 | ||
serializedVersion: 9 | ||
m_Fog: 0 | ||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} | ||
m_FogMode: 3 | ||
m_FogDensity: 0.01 | ||
m_LinearFogStart: 0 | ||
m_LinearFogEnd: 300 | ||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} | ||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} | ||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} | ||
m_AmbientIntensity: 1 | ||
m_AmbientMode: 0 | ||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} | ||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} | ||
m_HaloStrength: 0.5 | ||
m_FlareStrength: 1 | ||
m_FlareFadeSpeed: 3 | ||
m_HaloTexture: {fileID: 0} | ||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} | ||
m_DefaultReflectionMode: 0 | ||
m_DefaultReflectionResolution: 128 | ||
m_ReflectionBounces: 1 | ||
m_ReflectionIntensity: 1 | ||
m_CustomReflection: {fileID: 0} | ||
m_Sun: {fileID: 0} | ||
m_IndirectSpecularColor: {r: 0.18028334, g: 0.22571328, b: 0.30692166, a: 1} | ||
m_UseRadianceAmbientProbe: 0 | ||
--- !u!157 &3 | ||
LightmapSettings: | ||
m_ObjectHideFlags: 0 | ||
serializedVersion: 11 | ||
m_GIWorkflowMode: 0 | ||
m_GISettings: | ||
serializedVersion: 2 | ||
m_BounceScale: 1 | ||
m_IndirectOutputScale: 1 | ||
m_AlbedoBoost: 1 | ||
m_TemporalCoherenceThreshold: 1 | ||
m_EnvironmentLightingMode: 0 | ||
m_EnableBakedLightmaps: 1 | ||
m_EnableRealtimeLightmaps: 0 | ||
m_LightmapEditorSettings: | ||
serializedVersion: 10 | ||
m_Resolution: 2 | ||
m_BakeResolution: 10 | ||
m_AtlasSize: 512 | ||
m_AO: 0 | ||
m_AOMaxDistance: 1 | ||
m_CompAOExponent: 1 | ||
m_CompAOExponentDirect: 0 | ||
m_Padding: 2 | ||
m_LightmapParameters: {fileID: 0} | ||
m_LightmapsBakeMode: 1 | ||
m_TextureCompression: 1 | ||
m_FinalGather: 0 | ||
m_FinalGatherFiltering: 1 | ||
m_FinalGatherRayCount: 256 | ||
m_ReflectionCompression: 2 | ||
m_MixedBakeMode: 2 | ||
m_BakeBackend: 1 | ||
m_PVRSampling: 1 | ||
m_PVRDirectSampleCount: 32 | ||
m_PVRSampleCount: 256 | ||
m_PVRBounces: 2 | ||
m_PVRFilterTypeDirect: 0 | ||
m_PVRFilterTypeIndirect: 0 | ||
m_PVRFilterTypeAO: 0 | ||
m_PVRFilteringMode: 1 | ||
m_PVRCulling: 1 | ||
m_PVRFilteringGaussRadiusDirect: 1 | ||
m_PVRFilteringGaussRadiusIndirect: 5 | ||
m_PVRFilteringGaussRadiusAO: 2 | ||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5 | ||
m_PVRFilteringAtrousPositionSigmaIndirect: 2 | ||
m_PVRFilteringAtrousPositionSigmaAO: 1 | ||
m_ShowResolutionOverlay: 1 | ||
m_LightingDataAsset: {fileID: 0} | ||
m_UseShadowmask: 1 | ||
--- !u!196 &4 | ||
NavMeshSettings: | ||
serializedVersion: 2 | ||
m_ObjectHideFlags: 0 | ||
m_BuildSettings: | ||
serializedVersion: 2 | ||
agentTypeID: 0 | ||
agentRadius: 0.5 | ||
agentHeight: 2 | ||
agentSlope: 45 | ||
agentClimb: 0.4 | ||
ledgeDropHeight: 0 | ||
maxJumpAcrossDistance: 0 | ||
minRegionArea: 2 | ||
manualCellSize: 0 | ||
cellSize: 0.16666667 | ||
manualTileSize: 0 | ||
tileSize: 256 | ||
accuratePlacement: 0 | ||
debug: | ||
m_Flags: 0 | ||
m_NavMeshData: {fileID: 0} | ||
--- !u!1 &170076733 | ||
GameObject: | ||
m_ObjectHideFlags: 0 | ||
m_PrefabParentObject: {fileID: 0} | ||
m_PrefabInternal: {fileID: 0} | ||
serializedVersion: 5 | ||
m_Component: | ||
- component: {fileID: 170076735} | ||
- component: {fileID: 170076734} | ||
m_Layer: 0 | ||
m_Name: Directional Light | ||
m_TagString: Untagged | ||
m_Icon: {fileID: 0} | ||
m_NavMeshLayer: 0 | ||
m_StaticEditorFlags: 0 | ||
m_IsActive: 1 | ||
--- !u!108 &170076734 | ||
Light: | ||
m_ObjectHideFlags: 0 | ||
m_PrefabParentObject: {fileID: 0} | ||
m_PrefabInternal: {fileID: 0} | ||
m_GameObject: {fileID: 170076733} | ||
m_Enabled: 1 | ||
serializedVersion: 8 | ||
m_Type: 1 | ||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} | ||
m_Intensity: 1 | ||
m_Range: 10 | ||
m_SpotAngle: 30 | ||
m_CookieSize: 10 | ||
m_Shadows: | ||
m_Type: 2 | ||
m_Resolution: -1 | ||
m_CustomResolution: -1 | ||
m_Strength: 1 | ||
m_Bias: 0.05 | ||
m_NormalBias: 0.4 | ||
m_NearPlane: 0.2 | ||
m_Cookie: {fileID: 0} | ||
m_DrawHalo: 0 | ||
m_Flare: {fileID: 0} | ||
m_RenderMode: 0 | ||
m_CullingMask: | ||
serializedVersion: 2 | ||
m_Bits: 4294967295 | ||
m_Lightmapping: 1 | ||
m_AreaSize: {x: 1, y: 1} | ||
m_BounceIntensity: 1 | ||
m_ColorTemperature: 6570 | ||
m_UseColorTemperature: 0 | ||
m_ShadowRadius: 0 | ||
m_ShadowAngle: 0 | ||
--- !u!4 &170076735 | ||
Transform: | ||
m_ObjectHideFlags: 0 | ||
m_PrefabParentObject: {fileID: 0} | ||
m_PrefabInternal: {fileID: 0} | ||
m_GameObject: {fileID: 170076733} | ||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} | ||
m_LocalPosition: {x: 0, y: 3, z: 0} | ||
m_LocalScale: {x: 1, y: 1, z: 1} | ||
m_Children: [] | ||
m_Father: {fileID: 0} | ||
m_RootOrder: 1 | ||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} | ||
--- !u!1 &282840810 | ||
GameObject: | ||
m_ObjectHideFlags: 0 | ||
m_PrefabParentObject: {fileID: 0} | ||
m_PrefabInternal: {fileID: 0} | ||
serializedVersion: 5 | ||
m_Component: | ||
- component: {fileID: 282840814} | ||
- component: {fileID: 282840813} | ||
- component: {fileID: 282840811} | ||
m_Layer: 0 | ||
m_Name: Main Camera | ||
m_TagString: MainCamera | ||
m_Icon: {fileID: 0} | ||
m_NavMeshLayer: 0 | ||
m_StaticEditorFlags: 0 | ||
m_IsActive: 1 | ||
--- !u!81 &282840811 | ||
AudioListener: | ||
m_ObjectHideFlags: 0 | ||
m_PrefabParentObject: {fileID: 0} | ||
m_PrefabInternal: {fileID: 0} | ||
m_GameObject: {fileID: 282840810} | ||
m_Enabled: 1 | ||
--- !u!20 &282840813 | ||
Camera: | ||
m_ObjectHideFlags: 0 | ||
m_PrefabParentObject: {fileID: 0} | ||
m_PrefabInternal: {fileID: 0} | ||
m_GameObject: {fileID: 282840810} | ||
m_Enabled: 1 | ||
serializedVersion: 2 | ||
m_ClearFlags: 1 | ||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} | ||
m_NormalizedViewPortRect: | ||
serializedVersion: 2 | ||
x: 0 | ||
y: 0 | ||
width: 1 | ||
height: 1 | ||
near clip plane: 0.3 | ||
far clip plane: 1000 | ||
field of view: 60 | ||
orthographic: 0 | ||
orthographic size: 5 | ||
m_Depth: -1 | ||
m_CullingMask: | ||
serializedVersion: 2 | ||
m_Bits: 4294967295 | ||
m_RenderingPath: -1 | ||
m_TargetTexture: {fileID: 0} | ||
m_TargetDisplay: 0 | ||
m_TargetEye: 3 | ||
m_HDR: 1 | ||
m_AllowMSAA: 1 | ||
m_AllowDynamicResolution: 0 | ||
m_ForceIntoRT: 1 | ||
m_OcclusionCulling: 1 | ||
m_StereoConvergence: 10 | ||
m_StereoSeparation: 0.022 | ||
--- !u!4 &282840814 | ||
Transform: | ||
m_ObjectHideFlags: 0 | ||
m_PrefabParentObject: {fileID: 0} | ||
m_PrefabInternal: {fileID: 0} | ||
m_GameObject: {fileID: 282840810} | ||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | ||
m_LocalPosition: {x: 0, y: 1, z: -10} | ||
m_LocalScale: {x: 1, y: 1, z: 1} | ||
m_Children: [] | ||
m_Father: {fileID: 0} | ||
m_RootOrder: 0 | ||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||
--- !u!1 &1975791288 | ||
GameObject: | ||
m_ObjectHideFlags: 0 | ||
m_PrefabParentObject: {fileID: 0} | ||
m_PrefabInternal: {fileID: 0} | ||
serializedVersion: 5 | ||
m_Component: | ||
- component: {fileID: 1975791290} | ||
- component: {fileID: 1975791289} | ||
m_Layer: 0 | ||
m_Name: OSCMessageReceiver | ||
m_TagString: Untagged | ||
m_Icon: {fileID: 0} | ||
m_NavMeshLayer: 0 | ||
m_StaticEditorFlags: 0 | ||
m_IsActive: 1 | ||
--- !u!114 &1975791289 | ||
MonoBehaviour: | ||
m_ObjectHideFlags: 0 | ||
m_PrefabParentObject: {fileID: 0} | ||
m_PrefabInternal: {fileID: 0} | ||
m_GameObject: {fileID: 1975791288} | ||
m_Enabled: 1 | ||
m_EditorHideFlags: 0 | ||
m_Script: {fileID: 11500000, guid: d6bb09df8db864ac2a26c59604ee133b, type: 3} | ||
m_Name: | ||
m_EditorClassIdentifier: | ||
--- !u!4 &1975791290 | ||
Transform: | ||
m_ObjectHideFlags: 0 | ||
m_PrefabParentObject: {fileID: 0} | ||
m_PrefabInternal: {fileID: 0} | ||
m_GameObject: {fileID: 1975791288} | ||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | ||
m_LocalPosition: {x: 0, y: 0, z: 0} | ||
m_LocalScale: {x: 1, y: 1, z: 1} | ||
m_Children: [] | ||
m_Father: {fileID: 0} | ||
m_RootOrder: 2 | ||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
Oops, something went wrong.