Skip to content

Commit 59a98af

Browse files
authored
Meet: Improvements using participant tiles (#273)
* Adds remote track mute event tests for mic and cam * Tile system with placeholders seem to work * Placeholder image works * Placeholder from resources * Tiles are now prefabs with identity text * Meet looks much better now, has mic muted displaying as well * Prioritizes front facing cameras * Improved placeholder image, mic sync on preexisting tracks is now robust * Refactored so UI is its own script and camera stuff is its own script * Moved stuff into utils/video folder * Camera permission is only triggered on camera open * Delays camera icon switch after permission, but I still see it flip on permission denied * Front facing camera rotation works on iOS now, but code looks very overengineered * Removing some state logic for rotation problem * Local participant tile is always moved to the top of the layout when created * Added one comment
1 parent f7a33be commit 59a98af

17 files changed

Lines changed: 1229 additions & 204 deletions

Samples~/Meet/Assets/Prefabs.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 379 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,379 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!1 &3194821530047289010
4+
GameObject:
5+
m_ObjectHideFlags: 0
6+
m_CorrespondingSourceObject: {fileID: 0}
7+
m_PrefabInstance: {fileID: 0}
8+
m_PrefabAsset: {fileID: 0}
9+
serializedVersion: 6
10+
m_Component:
11+
- component: {fileID: 2715687384350862211}
12+
- component: {fileID: 3980165728533707639}
13+
- component: {fileID: 5296510187475739508}
14+
m_Layer: 5
15+
m_Name: Identity
16+
m_TagString: Untagged
17+
m_Icon: {fileID: 0}
18+
m_NavMeshLayer: 0
19+
m_StaticEditorFlags: 0
20+
m_IsActive: 1
21+
--- !u!224 &2715687384350862211
22+
RectTransform:
23+
m_ObjectHideFlags: 0
24+
m_CorrespondingSourceObject: {fileID: 0}
25+
m_PrefabInstance: {fileID: 0}
26+
m_PrefabAsset: {fileID: 0}
27+
m_GameObject: {fileID: 3194821530047289010}
28+
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
29+
m_LocalPosition: {x: 0, y: 0, z: 0}
30+
m_LocalScale: {x: 1, y: 1, z: 1}
31+
m_ConstrainProportionsScale: 0
32+
m_Children: []
33+
m_Father: {fileID: 5473313263338453555}
34+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
35+
m_AnchorMin: {x: 0, y: 0}
36+
m_AnchorMax: {x: 1, y: 1}
37+
m_AnchoredPosition: {x: 0, y: 0}
38+
m_SizeDelta: {x: 0, y: 0}
39+
m_Pivot: {x: 0.5, y: 0.5}
40+
--- !u!222 &3980165728533707639
41+
CanvasRenderer:
42+
m_ObjectHideFlags: 0
43+
m_CorrespondingSourceObject: {fileID: 0}
44+
m_PrefabInstance: {fileID: 0}
45+
m_PrefabAsset: {fileID: 0}
46+
m_GameObject: {fileID: 3194821530047289010}
47+
m_CullTransparentMesh: 1
48+
--- !u!114 &5296510187475739508
49+
MonoBehaviour:
50+
m_ObjectHideFlags: 0
51+
m_CorrespondingSourceObject: {fileID: 0}
52+
m_PrefabInstance: {fileID: 0}
53+
m_PrefabAsset: {fileID: 0}
54+
m_GameObject: {fileID: 3194821530047289010}
55+
m_Enabled: 1
56+
m_EditorHideFlags: 0
57+
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
58+
m_Name:
59+
m_EditorClassIdentifier:
60+
m_Material: {fileID: 0}
61+
m_Color: {r: 1, g: 1, b: 1, a: 1}
62+
m_RaycastTarget: 1
63+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
64+
m_Maskable: 1
65+
m_OnCullStateChanged:
66+
m_PersistentCalls:
67+
m_Calls: []
68+
m_text: Participant Identity
69+
m_isRightToLeft: 0
70+
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
71+
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
72+
m_fontSharedMaterials: []
73+
m_fontMaterial: {fileID: 0}
74+
m_fontMaterials: []
75+
m_fontColor32:
76+
serializedVersion: 2
77+
rgba: 4294967295
78+
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
79+
m_enableVertexGradient: 0
80+
m_colorMode: 3
81+
m_fontColorGradient:
82+
topLeft: {r: 1, g: 1, b: 1, a: 1}
83+
topRight: {r: 1, g: 1, b: 1, a: 1}
84+
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
85+
bottomRight: {r: 1, g: 1, b: 1, a: 1}
86+
m_fontColorGradientPreset: {fileID: 0}
87+
m_spriteAsset: {fileID: 0}
88+
m_tintAllSprites: 0
89+
m_StyleSheet: {fileID: 0}
90+
m_TextStyleHashCode: -1183493901
91+
m_overrideHtmlColors: 0
92+
m_faceColor:
93+
serializedVersion: 2
94+
rgba: 4294967295
95+
m_fontSize: 30
96+
m_fontSizeBase: 30
97+
m_fontWeight: 400
98+
m_enableAutoSizing: 0
99+
m_fontSizeMin: 18
100+
m_fontSizeMax: 72
101+
m_fontStyle: 0
102+
m_HorizontalAlignment: 2
103+
m_VerticalAlignment: 512
104+
m_textAlignment: 65535
105+
m_characterSpacing: 0
106+
m_wordSpacing: 0
107+
m_lineSpacing: 0
108+
m_lineSpacingMax: 0
109+
m_paragraphSpacing: 0
110+
m_charWidthMaxAdj: 0
111+
m_enableWordWrapping: 1
112+
m_wordWrappingRatios: 0.4
113+
m_overflowMode: 0
114+
m_linkedTextComponent: {fileID: 0}
115+
parentLinkedComponent: {fileID: 0}
116+
m_enableKerning: 1
117+
m_enableExtraPadding: 0
118+
checkPaddingRequired: 0
119+
m_isRichText: 1
120+
m_parseCtrlCharacters: 1
121+
m_isOrthographic: 1
122+
m_isCullingEnabled: 0
123+
m_horizontalMapping: 0
124+
m_verticalMapping: 0
125+
m_uvLineOffset: 0
126+
m_geometrySortingOrder: 0
127+
m_IsTextObjectScaleStatic: 0
128+
m_VertexBufferAutoSizeReduction: 0
129+
m_useMaxVisibleDescender: 1
130+
m_pageToDisplay: 1
131+
m_margin: {x: 0, y: 0, z: 0, w: 0}
132+
m_isUsingLegacyAnimationComponent: 0
133+
m_isVolumetricText: 0
134+
m_hasFontAssetChanged: 0
135+
m_baseMaterial: {fileID: 0}
136+
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
137+
--- !u!1 &6893859239230208018
138+
GameObject:
139+
m_ObjectHideFlags: 0
140+
m_CorrespondingSourceObject: {fileID: 0}
141+
m_PrefabInstance: {fileID: 0}
142+
m_PrefabAsset: {fileID: 0}
143+
serializedVersion: 6
144+
m_Component:
145+
- component: {fileID: 5473313263338453555}
146+
- component: {fileID: 418943099650344647}
147+
- component: {fileID: 7511938863453225678}
148+
m_Layer: 5
149+
m_Name: IdentityBackground
150+
m_TagString: Untagged
151+
m_Icon: {fileID: 0}
152+
m_NavMeshLayer: 0
153+
m_StaticEditorFlags: 0
154+
m_IsActive: 1
155+
--- !u!224 &5473313263338453555
156+
RectTransform:
157+
m_ObjectHideFlags: 0
158+
m_CorrespondingSourceObject: {fileID: 0}
159+
m_PrefabInstance: {fileID: 0}
160+
m_PrefabAsset: {fileID: 0}
161+
m_GameObject: {fileID: 6893859239230208018}
162+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
163+
m_LocalPosition: {x: 0, y: 0, z: 0}
164+
m_LocalScale: {x: 1, y: 1, z: 1}
165+
m_ConstrainProportionsScale: 0
166+
m_Children:
167+
- {fileID: 2715687384350862211}
168+
- {fileID: 1129279400322494679}
169+
m_Father: {fileID: 1555917188056391454}
170+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
171+
m_AnchorMin: {x: 0, y: 0}
172+
m_AnchorMax: {x: 1, y: 0.15}
173+
m_AnchoredPosition: {x: 0, y: 0}
174+
m_SizeDelta: {x: 0, y: 0}
175+
m_Pivot: {x: 0.5, y: 0.5}
176+
--- !u!222 &418943099650344647
177+
CanvasRenderer:
178+
m_ObjectHideFlags: 0
179+
m_CorrespondingSourceObject: {fileID: 0}
180+
m_PrefabInstance: {fileID: 0}
181+
m_PrefabAsset: {fileID: 0}
182+
m_GameObject: {fileID: 6893859239230208018}
183+
m_CullTransparentMesh: 1
184+
--- !u!114 &7511938863453225678
185+
MonoBehaviour:
186+
m_ObjectHideFlags: 0
187+
m_CorrespondingSourceObject: {fileID: 0}
188+
m_PrefabInstance: {fileID: 0}
189+
m_PrefabAsset: {fileID: 0}
190+
m_GameObject: {fileID: 6893859239230208018}
191+
m_Enabled: 1
192+
m_EditorHideFlags: 0
193+
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
194+
m_Name:
195+
m_EditorClassIdentifier:
196+
m_Material: {fileID: 0}
197+
m_Color: {r: 0, g: 0, b: 0, a: 0.78431374}
198+
m_RaycastTarget: 1
199+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
200+
m_Maskable: 1
201+
m_OnCullStateChanged:
202+
m_PersistentCalls:
203+
m_Calls: []
204+
m_Texture: {fileID: 0}
205+
m_UVRect:
206+
serializedVersion: 2
207+
x: 0
208+
y: 0
209+
width: 1
210+
height: 1
211+
--- !u!1 &8684675850679105360
212+
GameObject:
213+
m_ObjectHideFlags: 0
214+
m_CorrespondingSourceObject: {fileID: 0}
215+
m_PrefabInstance: {fileID: 0}
216+
m_PrefabAsset: {fileID: 0}
217+
serializedVersion: 6
218+
m_Component:
219+
- component: {fileID: 1129279400322494679}
220+
- component: {fileID: 7924644011577166309}
221+
- component: {fileID: 2212814851375317419}
222+
m_Layer: 5
223+
m_Name: MicrophoneMuted
224+
m_TagString: Untagged
225+
m_Icon: {fileID: 0}
226+
m_NavMeshLayer: 0
227+
m_StaticEditorFlags: 0
228+
m_IsActive: 1
229+
--- !u!224 &1129279400322494679
230+
RectTransform:
231+
m_ObjectHideFlags: 0
232+
m_CorrespondingSourceObject: {fileID: 0}
233+
m_PrefabInstance: {fileID: 0}
234+
m_PrefabAsset: {fileID: 0}
235+
m_GameObject: {fileID: 8684675850679105360}
236+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
237+
m_LocalPosition: {x: 0, y: 0, z: 0}
238+
m_LocalScale: {x: 1, y: 1, z: 1}
239+
m_ConstrainProportionsScale: 0
240+
m_Children: []
241+
m_Father: {fileID: 5473313263338453555}
242+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
243+
m_AnchorMin: {x: 0.5, y: 0}
244+
m_AnchorMax: {x: 0.5, y: 1}
245+
m_AnchoredPosition: {x: 173, y: 0}
246+
m_SizeDelta: {x: 39.4352, y: 0}
247+
m_Pivot: {x: 0.5, y: 0.5}
248+
--- !u!222 &7924644011577166309
249+
CanvasRenderer:
250+
m_ObjectHideFlags: 0
251+
m_CorrespondingSourceObject: {fileID: 0}
252+
m_PrefabInstance: {fileID: 0}
253+
m_PrefabAsset: {fileID: 0}
254+
m_GameObject: {fileID: 8684675850679105360}
255+
m_CullTransparentMesh: 1
256+
--- !u!114 &2212814851375317419
257+
MonoBehaviour:
258+
m_ObjectHideFlags: 0
259+
m_CorrespondingSourceObject: {fileID: 0}
260+
m_PrefabInstance: {fileID: 0}
261+
m_PrefabAsset: {fileID: 0}
262+
m_GameObject: {fileID: 8684675850679105360}
263+
m_Enabled: 1
264+
m_EditorHideFlags: 0
265+
m_Script: {fileID: 11500000, guid: b616e0308c79a454ebc4f2af9f4e7668, type: 3}
266+
m_Name:
267+
m_EditorClassIdentifier:
268+
m_Material: {fileID: 0}
269+
m_Color: {r: 1, g: 0.5330188, b: 0.5330188, a: 1}
270+
m_RaycastTarget: 1
271+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
272+
m_Maskable: 1
273+
m_OnCullStateChanged:
274+
m_PersistentCalls:
275+
m_Calls: []
276+
m_FontData:
277+
m_Font: {fileID: 12800000, guid: 7aa8a800795d9664a864b2be473b4518, type: 3}
278+
m_FontSize: 39
279+
m_FontStyle: 0
280+
m_BestFit: 0
281+
m_MinSize: 10
282+
m_MaxSize: 100
283+
m_Alignment: 4
284+
m_AlignByGeometry: 0
285+
m_RichText: 0
286+
m_HorizontalOverflow: 1
287+
m_VerticalOverflow: 1
288+
m_LineSpacing: 1
289+
m_Text: "\uE02B"
290+
_fontScale: 1
291+
--- !u!1 &9161241439613471979
292+
GameObject:
293+
m_ObjectHideFlags: 0
294+
m_CorrespondingSourceObject: {fileID: 0}
295+
m_PrefabInstance: {fileID: 0}
296+
m_PrefabAsset: {fileID: 0}
297+
serializedVersion: 6
298+
m_Component:
299+
- component: {fileID: 1555917188056391454}
300+
- component: {fileID: 4315784896331113596}
301+
- component: {fileID: 6927542484225957466}
302+
- component: {fileID: 1456447410953633226}
303+
m_Layer: 5
304+
m_Name: ParticipantTile
305+
m_TagString: Untagged
306+
m_Icon: {fileID: 0}
307+
m_NavMeshLayer: 0
308+
m_StaticEditorFlags: 0
309+
m_IsActive: 1
310+
--- !u!224 &1555917188056391454
311+
RectTransform:
312+
m_ObjectHideFlags: 0
313+
m_CorrespondingSourceObject: {fileID: 0}
314+
m_PrefabInstance: {fileID: 0}
315+
m_PrefabAsset: {fileID: 0}
316+
m_GameObject: {fileID: 9161241439613471979}
317+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
318+
m_LocalPosition: {x: 0, y: 0, z: 0}
319+
m_LocalScale: {x: 1, y: 1, z: 1}
320+
m_ConstrainProportionsScale: 0
321+
m_Children:
322+
- {fileID: 5473313263338453555}
323+
m_Father: {fileID: 0}
324+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
325+
m_AnchorMin: {x: 0, y: 0}
326+
m_AnchorMax: {x: 0, y: 0}
327+
m_AnchoredPosition: {x: 0, y: 0}
328+
m_SizeDelta: {x: 400, y: 400}
329+
m_Pivot: {x: 0.5, y: 0.5}
330+
--- !u!114 &4315784896331113596
331+
MonoBehaviour:
332+
m_ObjectHideFlags: 0
333+
m_CorrespondingSourceObject: {fileID: 0}
334+
m_PrefabInstance: {fileID: 0}
335+
m_PrefabAsset: {fileID: 0}
336+
m_GameObject: {fileID: 9161241439613471979}
337+
m_Enabled: 1
338+
m_EditorHideFlags: 0
339+
m_Script: {fileID: 11500000, guid: 7d23772985dbf4acebfb581f45d17696, type: 3}
340+
m_Name:
341+
m_EditorClassIdentifier:
342+
Image: {fileID: 1456447410953633226}
343+
Label: {fileID: 5296510187475739508}
344+
MicIcon: {fileID: 2212814851375317419}
345+
--- !u!222 &6927542484225957466
346+
CanvasRenderer:
347+
m_ObjectHideFlags: 0
348+
m_CorrespondingSourceObject: {fileID: 0}
349+
m_PrefabInstance: {fileID: 0}
350+
m_PrefabAsset: {fileID: 0}
351+
m_GameObject: {fileID: 9161241439613471979}
352+
m_CullTransparentMesh: 1
353+
--- !u!114 &1456447410953633226
354+
MonoBehaviour:
355+
m_ObjectHideFlags: 0
356+
m_CorrespondingSourceObject: {fileID: 0}
357+
m_PrefabInstance: {fileID: 0}
358+
m_PrefabAsset: {fileID: 0}
359+
m_GameObject: {fileID: 9161241439613471979}
360+
m_Enabled: 1
361+
m_EditorHideFlags: 0
362+
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
363+
m_Name:
364+
m_EditorClassIdentifier:
365+
m_Material: {fileID: 0}
366+
m_Color: {r: 1, g: 1, b: 1, a: 1}
367+
m_RaycastTarget: 1
368+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
369+
m_Maskable: 1
370+
m_OnCullStateChanged:
371+
m_PersistentCalls:
372+
m_Calls: []
373+
m_Texture: {fileID: 2800000, guid: 31e89df898e8a43b3a8bbf70767c42e4, type: 3}
374+
m_UVRect:
375+
serializedVersion: 2
376+
x: 0
377+
y: 0
378+
width: 1
379+
height: 1

Samples~/Meet/Assets/Prefabs/ParticipantTile.prefab.meta

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
43.6 KB
Loading

0 commit comments

Comments
 (0)