Skip to content

Commit 2ee896a

Browse files
jozzharttech-bin-knight
authored andcommitted
Add example of returning string for unity-to-react communication
1 parent bd4cd01 commit 2ee896a

File tree

7 files changed

+240
-14139
lines changed

7 files changed

+240
-14139
lines changed

testing/project/Assets/Controller.cs

+7
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ class Controller : MonoBehaviour {
99
[DllImport ("__Internal")] static extern void ClickedNumbersTestButton (int[] values, int length);
1010
[DllImport ("__Internal")] static extern void ClickedBoolTestButton (bool value);
1111
[DllImport ("__Internal")] static extern void ClickedObjectTestButton (string stringValue, int intValue, bool boolValue);
12+
[DllImport ("__Internal")] static extern string ClickedTestButtonReturnString ();
1213

1314
public Text textLog;
1415

@@ -49,6 +50,12 @@ public void DispatchObjectEvent () {
4950
#endif
5051
}
5152

53+
public void DispatchEventReturnString () {
54+
#if !UNITY_EDITOR && UNITY_WEBGL
55+
SetLogText(ClickedTestButtonReturnString());
56+
#endif
57+
}
58+
5259
void SetLogText (string text) {
5360
textLog.text = text;
5461
}

testing/project/Assets/Main.unity

+215
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,7 @@ RectTransform:
631631
- {fileID: 938036806}
632632
- {fileID: 1191530762}
633633
- {fileID: 1968377178}
634+
- {fileID: 1774420044}
634635
m_Father: {fileID: 2053015781}
635636
m_RootOrder: -1
636637
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1242,6 +1243,220 @@ CanvasRenderer:
12421243
m_PrefabAsset: {fileID: 0}
12431244
m_GameObject: {fileID: 1561554039}
12441245
m_CullTransparentMesh: 0
1246+
--- !u!1 &1774420043
1247+
GameObject:
1248+
m_ObjectHideFlags: 0
1249+
m_CorrespondingSourceObject: {fileID: 0}
1250+
m_PrefabInstance: {fileID: 0}
1251+
m_PrefabAsset: {fileID: 0}
1252+
serializedVersion: 6
1253+
m_Component:
1254+
- component: {fileID: 1774420044}
1255+
- component: {fileID: 1774420047}
1256+
- component: {fileID: 1774420046}
1257+
- component: {fileID: 1774420045}
1258+
m_Layer: 5
1259+
m_Name: DispatchEventButton
1260+
m_TagString: Untagged
1261+
m_Icon: {fileID: 0}
1262+
m_NavMeshLayer: 0
1263+
m_StaticEditorFlags: 0
1264+
m_IsActive: 1
1265+
--- !u!224 &1774420044
1266+
RectTransform:
1267+
m_ObjectHideFlags: 0
1268+
m_CorrespondingSourceObject: {fileID: 0}
1269+
m_PrefabInstance: {fileID: 0}
1270+
m_PrefabAsset: {fileID: 0}
1271+
m_GameObject: {fileID: 1774420043}
1272+
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
1273+
m_LocalPosition: {x: 0, y: 0, z: 0}
1274+
m_LocalScale: {x: 1, y: 1, z: 1}
1275+
m_ConstrainProportionsScale: 0
1276+
m_Children:
1277+
- {fileID: 1925683366}
1278+
m_Father: {fileID: 1061584829}
1279+
m_RootOrder: -1
1280+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1281+
m_AnchorMin: {x: 0, y: 0}
1282+
m_AnchorMax: {x: 0, y: 0}
1283+
m_AnchoredPosition: {x: 0, y: 0}
1284+
m_SizeDelta: {x: 0, y: 40}
1285+
m_Pivot: {x: 0, y: 1}
1286+
--- !u!114 &1774420045
1287+
MonoBehaviour:
1288+
m_ObjectHideFlags: 0
1289+
m_CorrespondingSourceObject: {fileID: 0}
1290+
m_PrefabInstance: {fileID: 0}
1291+
m_PrefabAsset: {fileID: 0}
1292+
m_GameObject: {fileID: 1774420043}
1293+
m_Enabled: 1
1294+
m_EditorHideFlags: 0
1295+
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
1296+
m_Name:
1297+
m_EditorClassIdentifier:
1298+
m_Navigation:
1299+
m_Mode: 3
1300+
m_WrapAround: 0
1301+
m_SelectOnUp: {fileID: 0}
1302+
m_SelectOnDown: {fileID: 0}
1303+
m_SelectOnLeft: {fileID: 0}
1304+
m_SelectOnRight: {fileID: 0}
1305+
m_Transition: 1
1306+
m_Colors:
1307+
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
1308+
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
1309+
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
1310+
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
1311+
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
1312+
m_ColorMultiplier: 1
1313+
m_FadeDuration: 0.1
1314+
m_SpriteState:
1315+
m_HighlightedSprite: {fileID: 0}
1316+
m_PressedSprite: {fileID: 0}
1317+
m_SelectedSprite: {fileID: 0}
1318+
m_DisabledSprite: {fileID: 0}
1319+
m_AnimationTriggers:
1320+
m_NormalTrigger: Normal
1321+
m_HighlightedTrigger: Highlighted
1322+
m_PressedTrigger: Pressed
1323+
m_SelectedTrigger: Highlighted
1324+
m_DisabledTrigger: Disabled
1325+
m_Interactable: 1
1326+
m_TargetGraphic: {fileID: 1774420046}
1327+
m_OnClick:
1328+
m_PersistentCalls:
1329+
m_Calls:
1330+
- m_Target: {fileID: 84545479}
1331+
m_TargetAssemblyTypeName: Controller, Assembly-CSharp
1332+
m_MethodName: DispatchEventReturnString
1333+
m_Mode: 1
1334+
m_Arguments:
1335+
m_ObjectArgument: {fileID: 0}
1336+
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
1337+
m_IntArgument: 0
1338+
m_FloatArgument: 0
1339+
m_StringArgument:
1340+
m_BoolArgument: 0
1341+
m_CallState: 2
1342+
--- !u!114 &1774420046
1343+
MonoBehaviour:
1344+
m_ObjectHideFlags: 0
1345+
m_CorrespondingSourceObject: {fileID: 0}
1346+
m_PrefabInstance: {fileID: 0}
1347+
m_PrefabAsset: {fileID: 0}
1348+
m_GameObject: {fileID: 1774420043}
1349+
m_Enabled: 1
1350+
m_EditorHideFlags: 0
1351+
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
1352+
m_Name:
1353+
m_EditorClassIdentifier:
1354+
m_Material: {fileID: 0}
1355+
m_Color: {r: 1, g: 1, b: 1, a: 1}
1356+
m_RaycastTarget: 1
1357+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
1358+
m_Maskable: 1
1359+
m_OnCullStateChanged:
1360+
m_PersistentCalls:
1361+
m_Calls: []
1362+
m_Sprite: {fileID: 0}
1363+
m_Type: 1
1364+
m_PreserveAspect: 0
1365+
m_FillCenter: 1
1366+
m_FillMethod: 4
1367+
m_FillAmount: 1
1368+
m_FillClockwise: 1
1369+
m_FillOrigin: 0
1370+
m_UseSpriteMesh: 0
1371+
m_PixelsPerUnitMultiplier: 1
1372+
--- !u!222 &1774420047
1373+
CanvasRenderer:
1374+
m_ObjectHideFlags: 0
1375+
m_CorrespondingSourceObject: {fileID: 0}
1376+
m_PrefabInstance: {fileID: 0}
1377+
m_PrefabAsset: {fileID: 0}
1378+
m_GameObject: {fileID: 1774420043}
1379+
m_CullTransparentMesh: 0
1380+
--- !u!1 &1925683365
1381+
GameObject:
1382+
m_ObjectHideFlags: 0
1383+
m_CorrespondingSourceObject: {fileID: 0}
1384+
m_PrefabInstance: {fileID: 0}
1385+
m_PrefabAsset: {fileID: 0}
1386+
serializedVersion: 6
1387+
m_Component:
1388+
- component: {fileID: 1925683366}
1389+
- component: {fileID: 1925683368}
1390+
- component: {fileID: 1925683367}
1391+
m_Layer: 5
1392+
m_Name: ButtonText
1393+
m_TagString: Untagged
1394+
m_Icon: {fileID: 0}
1395+
m_NavMeshLayer: 0
1396+
m_StaticEditorFlags: 0
1397+
m_IsActive: 1
1398+
--- !u!224 &1925683366
1399+
RectTransform:
1400+
m_ObjectHideFlags: 0
1401+
m_CorrespondingSourceObject: {fileID: 0}
1402+
m_PrefabInstance: {fileID: 0}
1403+
m_PrefabAsset: {fileID: 0}
1404+
m_GameObject: {fileID: 1925683365}
1405+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1406+
m_LocalPosition: {x: 0, y: 0, z: 0}
1407+
m_LocalScale: {x: 1, y: 1, z: 1}
1408+
m_ConstrainProportionsScale: 0
1409+
m_Children: []
1410+
m_Father: {fileID: 1774420044}
1411+
m_RootOrder: 0
1412+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1413+
m_AnchorMin: {x: 0, y: 0}
1414+
m_AnchorMax: {x: 1, y: 1}
1415+
m_AnchoredPosition: {x: 0, y: 0}
1416+
m_SizeDelta: {x: 0, y: 0}
1417+
m_Pivot: {x: 0.5, y: 0.5}
1418+
--- !u!114 &1925683367
1419+
MonoBehaviour:
1420+
m_ObjectHideFlags: 0
1421+
m_CorrespondingSourceObject: {fileID: 0}
1422+
m_PrefabInstance: {fileID: 0}
1423+
m_PrefabAsset: {fileID: 0}
1424+
m_GameObject: {fileID: 1925683365}
1425+
m_Enabled: 1
1426+
m_EditorHideFlags: 0
1427+
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
1428+
m_Name:
1429+
m_EditorClassIdentifier:
1430+
m_Material: {fileID: 0}
1431+
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
1432+
m_RaycastTarget: 1
1433+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
1434+
m_Maskable: 1
1435+
m_OnCullStateChanged:
1436+
m_PersistentCalls:
1437+
m_Calls: []
1438+
m_FontData:
1439+
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
1440+
m_FontSize: 16
1441+
m_FontStyle: 0
1442+
m_BestFit: 0
1443+
m_MinSize: 1
1444+
m_MaxSize: 40
1445+
m_Alignment: 4
1446+
m_AlignByGeometry: 0
1447+
m_RichText: 1
1448+
m_HorizontalOverflow: 0
1449+
m_VerticalOverflow: 0
1450+
m_LineSpacing: 1
1451+
m_Text: Dispatch Event return String
1452+
--- !u!222 &1925683368
1453+
CanvasRenderer:
1454+
m_ObjectHideFlags: 0
1455+
m_CorrespondingSourceObject: {fileID: 0}
1456+
m_PrefabInstance: {fileID: 0}
1457+
m_PrefabAsset: {fileID: 0}
1458+
m_GameObject: {fileID: 1925683365}
1459+
m_CullTransparentMesh: 0
12451460
--- !u!1 &1968377177
12461461
GameObject:
12471462
m_ObjectHideFlags: 0

testing/project/Assets/Plugins/WebGL/Bridge.jslib

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
mergeInto(LibraryManager.library, {
1+
mergeInto(LibraryManager.library, {
22
ClickedTestButton: function () {
33
dispatchReactUnityEvent("ClickedTestButton");
44
},
@@ -25,4 +25,11 @@
2525
boolValue: boolValue === 1,
2626
});
2727
},
28+
ClickedTestButtonReturnString: function () {
29+
var returnStr = dispatchReactUnityEvent("ClickedTestButtonReturnString");
30+
var bufferSize = lengthBytesUTF8(returnStr) + 1;
31+
var buffer = _malloc(bufferSize);
32+
stringToUTF8(returnStr, buffer, bufferSize);
33+
return buffer;
34+
},
2835
});
Binary file not shown.

0 commit comments

Comments
 (0)