-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of https://github.com/RimuruDev/Unity-React-WEBGL…
- Loading branch information
Showing
1 changed file
with
129 additions
and
0 deletions.
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 |
---|---|---|
@@ -0,0 +1,129 @@ | ||
# Пометка на память | ||
|
||
## Создание WEBGL игры с интеграцией React и Unity | ||
|
||
### Шаги по установке и созданию проекта | ||
|
||
1. Создаем новый проект React: | ||
```bash | ||
npx create-react-app react-project | ||
``` | ||
|
||
2. Переходим в папку проекта: | ||
```bash | ||
cd react-project | ||
``` | ||
|
||
3. Устанавливаем библиотеку для интеграции Unity в React: | ||
```bash | ||
npm install react-unity-webgl | ||
``` | ||
|
||
4. Собираем билд Unity и переносим его в папку `public/UnityBuild`. В моем случае проект называется `Clicker`. | ||
|
||
5. Создаем файл `App.js` в папке `src` и файл `UnityApp.js` в папке `src`. | ||
|
||
### Пример файла `App.js` | ||
|
||
```javascript | ||
import React from 'react'; | ||
import UnityApp from './UnityApp'; | ||
|
||
function App() { | ||
return ( | ||
<div className="App"> | ||
<UnityApp /> | ||
</div> | ||
); | ||
} | ||
|
||
export default App; | ||
``` | ||
|
||
### Пример файла `UnityApp.js` | ||
|
||
```javascript | ||
import React, { useEffect } from 'react'; | ||
import { Unity, useUnityContext } from "react-unity-webgl"; | ||
|
||
function UnityApp() { | ||
const { unityProvider, sendMessage } = useUnityContext({ | ||
loaderUrl: "UnityBuild/Build/Clicker.loader.js", | ||
dataUrl: "UnityBuild/Build/Clicker.data.unityweb", | ||
frameworkUrl: "UnityBuild/Build/Clicker.framework.js.unityweb", | ||
codeUrl: "UnityBuild/Build/Clicker.wasm.unityweb", | ||
}); | ||
|
||
useEffect(() => { | ||
const user = { | ||
user_id: "666", | ||
user_name: "Rimuru Dev" | ||
}; | ||
|
||
console.log("Sending user data:", JSON.stringify(user)); | ||
|
||
sendMessage("UserDataHandler", "ReceiveUserData", JSON.stringify(user)); | ||
}, [sendMessage]); | ||
|
||
useEffect(() => { | ||
window.UnityToReact = (message) => { | ||
console.log("Received from Unity: ", message); | ||
}; | ||
|
||
return () => { | ||
delete window.UnityToReact; | ||
}; | ||
}, []); | ||
|
||
return <Unity unityProvider={unityProvider} style={{ width: "800px", height: "600px" }} />; | ||
} | ||
|
||
export default UnityApp; | ||
``` | ||
|
||
6. Запускаем проект: | ||
```bash | ||
npm start | ||
``` | ||
|
||
7. Открываем в браузере: | ||
``` | ||
http://localhost:3000/ | ||
``` | ||
--- | ||
|
||
## Тестирование проекта | ||
|
||
Если вы хотите протестировать этот проект, выполните следующие шаги: | ||
|
||
1. **Установите Node.js**: | ||
Если у вас нет Node.js, скачайте и установите его с [официального сайта](https://nodejs.org/). | ||
|
||
2. **Склонируйте репозиторий**: | ||
```bash | ||
git clone https://github.com/RimuruDev/Unity-React-WEBGL-Clicker.git | ||
``` | ||
|
||
3. **Перейдите в папку с проектом React**: | ||
```bash | ||
cd Unity-React-WEBGL-Clicker/react-project | ||
``` | ||
|
||
4. **Установите зависимости**: | ||
```bash | ||
npm install | ||
``` | ||
|
||
5. **Запустите проект**: | ||
```bash | ||
npm start | ||
``` | ||
|
||
6. **Откройте проект в браузере**: | ||
Откройте браузер и перейдите по адресу: | ||
``` | ||
http://localhost:3000/ | ||
``` | ||
|
||
Теперь вы можете увидеть работу интеграции Unity и React в действии. Если у вас возникнут вопросы или проблемы, пожалуйста, создайте issue в репозитории. |