Skip to content

Commit 3413378

Browse files
Add controller preview on unity remote
Co-Authored-By: SamsidParty <business@samsidparty.com>
1 parent e8f1637 commit 3413378

File tree

8 files changed

+296
-2
lines changed

8 files changed

+296
-2
lines changed

Oberon.Remote/Assets/Scenes/MainRemote.unity

Lines changed: 242 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,81 @@ NavMeshSettings:
118118
debug:
119119
m_Flags: 0
120120
m_NavMeshData: {fileID: 0}
121+
--- !u!1 &65662700
122+
GameObject:
123+
m_ObjectHideFlags: 0
124+
m_CorrespondingSourceObject: {fileID: 0}
125+
m_PrefabInstance: {fileID: 0}
126+
m_PrefabAsset: {fileID: 0}
127+
serializedVersion: 6
128+
m_Component:
129+
- component: {fileID: 65662701}
130+
- component: {fileID: 65662703}
131+
- component: {fileID: 65662702}
132+
m_Layer: 5
133+
m_Name: Orb
134+
m_TagString: Untagged
135+
m_Icon: {fileID: 0}
136+
m_NavMeshLayer: 0
137+
m_StaticEditorFlags: 0
138+
m_IsActive: 1
139+
--- !u!224 &65662701
140+
RectTransform:
141+
m_ObjectHideFlags: 0
142+
m_CorrespondingSourceObject: {fileID: 0}
143+
m_PrefabInstance: {fileID: 0}
144+
m_PrefabAsset: {fileID: 0}
145+
m_GameObject: {fileID: 65662700}
146+
m_LocalRotation: {x: 0, y: 0, z: -0.14893135, w: 0.98884755}
147+
m_LocalPosition: {x: 0, y: 0, z: 0}
148+
m_LocalScale: {x: 1, y: 1, z: 1}
149+
m_ConstrainProportionsScale: 0
150+
m_Children: []
151+
m_Father: {fileID: 1000427746}
152+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -17.13}
153+
m_AnchorMin: {x: 0.5, y: 0.5}
154+
m_AnchorMax: {x: 0.5, y: 0.5}
155+
m_AnchoredPosition: {x: 0, y: 0}
156+
m_SizeDelta: {x: 280, y: 280}
157+
m_Pivot: {x: 0.5, y: 0.5}
158+
--- !u!114 &65662702
159+
MonoBehaviour:
160+
m_ObjectHideFlags: 0
161+
m_CorrespondingSourceObject: {fileID: 0}
162+
m_PrefabInstance: {fileID: 0}
163+
m_PrefabAsset: {fileID: 0}
164+
m_GameObject: {fileID: 65662700}
165+
m_Enabled: 1
166+
m_EditorHideFlags: 0
167+
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
168+
m_Name:
169+
m_EditorClassIdentifier:
170+
m_Material: {fileID: 0}
171+
m_Color: {r: 1, g: 1, b: 1, a: 1}
172+
m_RaycastTarget: 1
173+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
174+
m_Maskable: 1
175+
m_OnCullStateChanged:
176+
m_PersistentCalls:
177+
m_Calls: []
178+
m_Sprite: {fileID: 6780163795253843707, guid: 434d01cf30b14314b8d82990195e5fff, type: 3}
179+
m_Type: 0
180+
m_PreserveAspect: 0
181+
m_FillCenter: 1
182+
m_FillMethod: 4
183+
m_FillAmount: 1
184+
m_FillClockwise: 1
185+
m_FillOrigin: 0
186+
m_UseSpriteMesh: 0
187+
m_PixelsPerUnitMultiplier: 1
188+
--- !u!222 &65662703
189+
CanvasRenderer:
190+
m_ObjectHideFlags: 0
191+
m_CorrespondingSourceObject: {fileID: 0}
192+
m_PrefabInstance: {fileID: 0}
193+
m_PrefabAsset: {fileID: 0}
194+
m_GameObject: {fileID: 65662700}
195+
m_CullTransparentMesh: 1
121196
--- !u!1 &270670579
122197
GameObject:
123198
m_ObjectHideFlags: 0
@@ -196,6 +271,160 @@ Transform:
196271
m_Children: []
197272
m_Father: {fileID: 0}
198273
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
274+
--- !u!1 &394973002
275+
GameObject:
276+
m_ObjectHideFlags: 0
277+
m_CorrespondingSourceObject: {fileID: 0}
278+
m_PrefabInstance: {fileID: 0}
279+
m_PrefabAsset: {fileID: 0}
280+
serializedVersion: 6
281+
m_Component:
282+
- component: {fileID: 394973003}
283+
- component: {fileID: 394973005}
284+
- component: {fileID: 394973004}
285+
m_Layer: 5
286+
m_Name: ControllerPreview
287+
m_TagString: Untagged
288+
m_Icon: {fileID: 0}
289+
m_NavMeshLayer: 0
290+
m_StaticEditorFlags: 0
291+
m_IsActive: 1
292+
--- !u!224 &394973003
293+
RectTransform:
294+
m_ObjectHideFlags: 0
295+
m_CorrespondingSourceObject: {fileID: 0}
296+
m_PrefabInstance: {fileID: 0}
297+
m_PrefabAsset: {fileID: 0}
298+
m_GameObject: {fileID: 394973002}
299+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
300+
m_LocalPosition: {x: 0, y: 0, z: 0}
301+
m_LocalScale: {x: 1, y: 1, z: 1}
302+
m_ConstrainProportionsScale: 0
303+
m_Children: []
304+
m_Father: {fileID: 1000427746}
305+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
306+
m_AnchorMin: {x: 0.5, y: 0.5}
307+
m_AnchorMax: {x: 0.5, y: 0.5}
308+
m_AnchoredPosition: {x: 0, y: 0}
309+
m_SizeDelta: {x: 240, y: 169.2}
310+
m_Pivot: {x: 0.5, y: 0.5}
311+
--- !u!114 &394973004
312+
MonoBehaviour:
313+
m_ObjectHideFlags: 0
314+
m_CorrespondingSourceObject: {fileID: 0}
315+
m_PrefabInstance: {fileID: 0}
316+
m_PrefabAsset: {fileID: 0}
317+
m_GameObject: {fileID: 394973002}
318+
m_Enabled: 1
319+
m_EditorHideFlags: 0
320+
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
321+
m_Name:
322+
m_EditorClassIdentifier:
323+
m_Material: {fileID: 0}
324+
m_Color: {r: 1, g: 1, b: 1, a: 1}
325+
m_RaycastTarget: 1
326+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
327+
m_Maskable: 1
328+
m_OnCullStateChanged:
329+
m_PersistentCalls:
330+
m_Calls: []
331+
m_Sprite: {fileID: -695719604205618287, guid: b2b90e051d7cfbf499ee7d19a0710b36, type: 3}
332+
m_Type: 0
333+
m_PreserveAspect: 0
334+
m_FillCenter: 1
335+
m_FillMethod: 4
336+
m_FillAmount: 1
337+
m_FillClockwise: 1
338+
m_FillOrigin: 0
339+
m_UseSpriteMesh: 0
340+
m_PixelsPerUnitMultiplier: 1
341+
--- !u!222 &394973005
342+
CanvasRenderer:
343+
m_ObjectHideFlags: 0
344+
m_CorrespondingSourceObject: {fileID: 0}
345+
m_PrefabInstance: {fileID: 0}
346+
m_PrefabAsset: {fileID: 0}
347+
m_GameObject: {fileID: 394973002}
348+
m_CullTransparentMesh: 1
349+
--- !u!1 &761623101
350+
GameObject:
351+
m_ObjectHideFlags: 0
352+
m_CorrespondingSourceObject: {fileID: 0}
353+
m_PrefabInstance: {fileID: 0}
354+
m_PrefabAsset: {fileID: 0}
355+
serializedVersion: 6
356+
m_Component:
357+
- component: {fileID: 761623102}
358+
- component: {fileID: 761623104}
359+
- component: {fileID: 761623103}
360+
m_Layer: 5
361+
m_Name: Controller Status
362+
m_TagString: Untagged
363+
m_Icon: {fileID: 0}
364+
m_NavMeshLayer: 0
365+
m_StaticEditorFlags: 0
366+
m_IsActive: 1
367+
--- !u!224 &761623102
368+
RectTransform:
369+
m_ObjectHideFlags: 0
370+
m_CorrespondingSourceObject: {fileID: 0}
371+
m_PrefabInstance: {fileID: 0}
372+
m_PrefabAsset: {fileID: 0}
373+
m_GameObject: {fileID: 761623101}
374+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
375+
m_LocalPosition: {x: 0, y: 0, z: 0}
376+
m_LocalScale: {x: 1, y: 1, z: 1}
377+
m_ConstrainProportionsScale: 0
378+
m_Children: []
379+
m_Father: {fileID: 1000427746}
380+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
381+
m_AnchorMin: {x: 0.5, y: 0}
382+
m_AnchorMax: {x: 0.5, y: 0}
383+
m_AnchoredPosition: {x: 0, y: 80}
384+
m_SizeDelta: {x: 340, y: 30}
385+
m_Pivot: {x: 0.5, y: 0}
386+
--- !u!114 &761623103
387+
MonoBehaviour:
388+
m_ObjectHideFlags: 0
389+
m_CorrespondingSourceObject: {fileID: 0}
390+
m_PrefabInstance: {fileID: 0}
391+
m_PrefabAsset: {fileID: 0}
392+
m_GameObject: {fileID: 761623101}
393+
m_Enabled: 1
394+
m_EditorHideFlags: 0
395+
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
396+
m_Name:
397+
m_EditorClassIdentifier:
398+
m_Material: {fileID: 0}
399+
m_Color: {r: 1, g: 1, b: 1, a: 1}
400+
m_RaycastTarget: 1
401+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
402+
m_Maskable: 1
403+
m_OnCullStateChanged:
404+
m_PersistentCalls:
405+
m_Calls: []
406+
m_FontData:
407+
m_Font: {fileID: 12800000, guid: 739b0c35358f60f4c9dc7e8af21876ce, type: 3}
408+
m_FontSize: 20
409+
m_FontStyle: 0
410+
m_BestFit: 0
411+
m_MinSize: 10
412+
m_MaxSize: 40
413+
m_Alignment: 4
414+
m_AlignByGeometry: 0
415+
m_RichText: 1
416+
m_HorizontalOverflow: 0
417+
m_VerticalOverflow: 0
418+
m_LineSpacing: 1
419+
m_Text: 'Controller:'
420+
--- !u!222 &761623104
421+
CanvasRenderer:
422+
m_ObjectHideFlags: 0
423+
m_CorrespondingSourceObject: {fileID: 0}
424+
m_PrefabInstance: {fileID: 0}
425+
m_PrefabAsset: {fileID: 0}
426+
m_GameObject: {fileID: 761623101}
427+
m_CullTransparentMesh: 1
199428
--- !u!1 &1000427745
200429
GameObject:
201430
m_ObjectHideFlags: 0
@@ -228,6 +457,9 @@ RectTransform:
228457
m_ConstrainProportionsScale: 0
229458
m_Children:
230459
- {fileID: 1591948900}
460+
- {fileID: 761623102}
461+
- {fileID: 65662701}
462+
- {fileID: 394973003}
231463
m_Father: {fileID: 1955582720}
232464
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
233465
m_AnchorMin: {x: 0.5, y: 0}
@@ -286,6 +518,15 @@ MonoBehaviour:
286518
m_Name:
287519
m_EditorClassIdentifier:
288520
IPText: {fileID: 1591948901}
521+
ControllerText: {fileID: 761623103}
522+
ControllerTextures:
523+
- ControllerType: Missing
524+
Texture: {fileID: -695719604205618287, guid: b2b90e051d7cfbf499ee7d19a0710b36, type: 3}
525+
- ControllerType: Generic
526+
Texture: {fileID: -3854847471880376096, guid: ac8079688da92754ba3d7dd7587f100f, type: 3}
527+
- ControllerType: PS5
528+
Texture: {fileID: 5891873981361610671, guid: e12c21e72855bb14eabca9df447d5c01, type: 3}
529+
ControllerImage: {fileID: 394973004}
289530
--- !u!1 &1345607353
290531
GameObject:
291532
m_ObjectHideFlags: 0
@@ -342,7 +583,7 @@ GameObject:
342583
- component: {fileID: 1591948902}
343584
- component: {fileID: 1591948901}
344585
m_Layer: 5
345-
m_Name: Text (Legacy)
586+
m_Name: IP Address
346587
m_TagString: Untagged
347588
m_Icon: {fileID: 0}
348589
m_NavMeshLayer: 0
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,60 @@
11
using Oberon.Remote.Core;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
25
using UnityEngine;
6+
using UnityEngine.InputSystem;
37
using UnityEngine.UI;
48

59
public class OberonStatusUI : MonoBehaviour
610
{
711
public Text IPText;
12+
public Text ControllerText;
13+
14+
public ControllerPreview[] ControllerTextures;
15+
public Image ControllerImage;
16+
17+
string CurrentControllerImage;
18+
string LastControllerImage = "Missing";
819

920
private void FixedUpdate()
1021
{
1122
var status = ServerStatus.CurrentStatus;
1223
IPText.text = "IP Address: " + status.ListenIP;
24+
25+
if (status.ConnectedControllerCount == 0)
26+
{
27+
ControllerText.text = "Controller: Disconnected";
28+
CurrentControllerImage = "Missing";
29+
}
30+
else if (status.ConnectedControllerCount == 1)
31+
{
32+
ControllerText.text = "Controller: Connected";
33+
34+
CurrentControllerImage = "Generic";
35+
36+
if (Gamepad.current.displayName.ToLower().Contains("dualsense"))
37+
{
38+
CurrentControllerImage = "PS5";
39+
}
40+
}
41+
else
42+
{
43+
ControllerText.text = "Controllers: " + status.ConnectedControllerCount + " Connected";
44+
CurrentControllerImage = "Generic";
45+
}
46+
47+
if (CurrentControllerImage != LastControllerImage)
48+
{
49+
LastControllerImage = CurrentControllerImage;
50+
ControllerImage.sprite = ControllerTextures.Where((t) => t.ControllerType == CurrentControllerImage).First().Texture;
51+
}
1352
}
1453
}
54+
55+
[Serializable]
56+
public struct ControllerPreview
57+
{
58+
public string ControllerType;
59+
public Sprite Texture;
60+
}
508 KB
Loading
103 KB
Loading
427 KB
Loading
72.9 KB
Loading
121 KB
Loading

Oberon.Remote/ProjectSettings/ProjectSettings.asset

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,14 @@ PlayerSettings:
286286
AndroidAppBundleSizeToValidate: 150
287287
AndroidReportGooglePlayAppDependencies: 1
288288
androidSymbolsSizeThreshold: 800
289-
m_BuildTargetIcons: []
289+
m_BuildTargetIcons:
290+
- m_BuildTarget:
291+
m_Icons:
292+
- serializedVersion: 2
293+
m_Icon: {fileID: 2800000, guid: 890a1dfa3b1120d46869b77a29e33882, type: 3}
294+
m_Width: 128
295+
m_Height: 128
296+
m_Kind: 0
290297
m_BuildTargetPlatformIcons: []
291298
m_BuildTargetBatching: []
292299
m_BuildTargetShaderSettings: []

0 commit comments

Comments
 (0)