Skip to content

Commit 976b3de

Browse files
committed
2 parents 0d60b45 + 3d734e2 commit 976b3de

File tree

1 file changed

+129
-0
lines changed

1 file changed

+129
-0
lines changed

README.md

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
# Пометка на память
2+
3+
## Создание WEBGL игры с интеграцией React и Unity
4+
5+
### Шаги по установке и созданию проекта
6+
7+
1. Создаем новый проект React:
8+
```bash
9+
npx create-react-app react-project
10+
```
11+
12+
2. Переходим в папку проекта:
13+
```bash
14+
cd react-project
15+
```
16+
17+
3. Устанавливаем библиотеку для интеграции Unity в React:
18+
```bash
19+
npm install react-unity-webgl
20+
```
21+
22+
4. Собираем билд Unity и переносим его в папку `public/UnityBuild`. В моем случае проект называется `Clicker`.
23+
24+
5. Создаем файл `App.js` в папке `src` и файл `UnityApp.js` в папке `src`.
25+
26+
### Пример файла `App.js`
27+
28+
```javascript
29+
import React from 'react';
30+
import UnityApp from './UnityApp';
31+
32+
function App() {
33+
return (
34+
<div className="App">
35+
<UnityApp />
36+
</div>
37+
);
38+
}
39+
40+
export default App;
41+
```
42+
43+
### Пример файла `UnityApp.js`
44+
45+
```javascript
46+
import React, { useEffect } from 'react';
47+
import { Unity, useUnityContext } from "react-unity-webgl";
48+
49+
function UnityApp() {
50+
const { unityProvider, sendMessage } = useUnityContext({
51+
loaderUrl: "UnityBuild/Build/Clicker.loader.js",
52+
dataUrl: "UnityBuild/Build/Clicker.data.unityweb",
53+
frameworkUrl: "UnityBuild/Build/Clicker.framework.js.unityweb",
54+
codeUrl: "UnityBuild/Build/Clicker.wasm.unityweb",
55+
});
56+
57+
useEffect(() => {
58+
const user = {
59+
user_id: "666",
60+
user_name: "Rimuru Dev"
61+
};
62+
63+
console.log("Sending user data:", JSON.stringify(user));
64+
65+
sendMessage("UserDataHandler", "ReceiveUserData", JSON.stringify(user));
66+
}, [sendMessage]);
67+
68+
useEffect(() => {
69+
window.UnityToReact = (message) => {
70+
console.log("Received from Unity: ", message);
71+
};
72+
73+
return () => {
74+
delete window.UnityToReact;
75+
};
76+
}, []);
77+
78+
return <Unity unityProvider={unityProvider} style={{ width: "800px", height: "600px" }} />;
79+
}
80+
81+
export default UnityApp;
82+
```
83+
84+
6. Запускаем проект:
85+
```bash
86+
npm start
87+
```
88+
89+
7. Открываем в браузере:
90+
```
91+
http://localhost:3000/
92+
93+
```
94+
---
95+
96+
## Тестирование проекта
97+
98+
Если вы хотите протестировать этот проект, выполните следующие шаги:
99+
100+
1. **Установите Node.js**:
101+
Если у вас нет Node.js, скачайте и установите его с [официального сайта](https://nodejs.org/).
102+
103+
2. **Склонируйте репозиторий**:
104+
```bash
105+
git clone https://github.com/RimuruDev/Unity-React-WEBGL-Clicker.git
106+
```
107+
108+
3. **Перейдите в папку с проектом React**:
109+
```bash
110+
cd Unity-React-WEBGL-Clicker/react-project
111+
```
112+
113+
4. **Установите зависимости**:
114+
```bash
115+
npm install
116+
```
117+
118+
5. **Запустите проект**:
119+
```bash
120+
npm start
121+
```
122+
123+
6. **Откройте проект в браузере**:
124+
Откройте браузер и перейдите по адресу:
125+
```
126+
http://localhost:3000/
127+
```
128+
129+
Теперь вы можете увидеть работу интеграции Unity и React в действии. Если у вас возникнут вопросы или проблемы, пожалуйста, создайте issue в репозитории.

0 commit comments

Comments
 (0)