bug fix
This commit is contained in:
@@ -1,72 +0,0 @@
|
||||
import { Unity, useUnityContext } from "react-unity-webgl";
|
||||
import { useEffect } from "react";
|
||||
import { ReactUnityEventParameter } from "react-unity-webgl/distribution/types/react-unity-event-parameters";
|
||||
import useStore from "../../store/store";
|
||||
import LoaderModal from "../../components/LoaderModal";
|
||||
import ButtonPanel from "../../components/desktop/ButtonPanel";
|
||||
import ParameterDescription from "../../components/desktop/ParameterDescription";
|
||||
import { A1MViewParams } from "../../consts/viewParams";
|
||||
import LayoutsButtonContainer from "../../components/desktop/LayoutsButtonContainer";
|
||||
|
||||
const Apartment = () => {
|
||||
const { loader, setLoader, setSendMessageToUnity } = useStore();
|
||||
|
||||
const {
|
||||
unityProvider,
|
||||
isLoaded,
|
||||
sendMessage,
|
||||
addEventListener,
|
||||
removeEventListener,
|
||||
} = useUnityContext({
|
||||
loaderUrl: "builds/estate-webgl.loader.js",
|
||||
dataUrl: "builds/estate-webgl.data.unityweb",
|
||||
frameworkUrl: "builds/estate-webgl.framework.js.unityweb",
|
||||
codeUrl: "builds/estate-webgl.wasm.unityweb",
|
||||
streamingAssetsUrl: "StreamingAssets",
|
||||
});
|
||||
|
||||
const handleSetLoaded = (isSceneLoaded: ReactUnityEventParameter) => {
|
||||
if (isSceneLoaded === 0) {
|
||||
setLoader(<LoaderModal />);
|
||||
} else {
|
||||
setLoader(null);
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
addEventListener("SetLoaded", handleSetLoaded);
|
||||
|
||||
return () => {
|
||||
removeEventListener("SetLoaded", handleSetLoaded);
|
||||
};
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (!isLoaded) {
|
||||
setLoader(<LoaderModal />);
|
||||
} else {
|
||||
setLoader(null);
|
||||
setSendMessageToUnity(sendMessage);
|
||||
sendMessage("LevelSwitcher", "LoadSceneSingle", "Outdoor/A1");
|
||||
}
|
||||
}, [isLoaded]);
|
||||
|
||||
return (
|
||||
<>
|
||||
{loader}
|
||||
<div className="pt-[101px] pb-[63px] px-[215px] relative">
|
||||
<div className="relative">
|
||||
<ButtonPanel />
|
||||
<Unity
|
||||
unityProvider={unityProvider}
|
||||
style={{ width: "100%", height: "100%" }}
|
||||
/>
|
||||
<LayoutsButtonContainer />
|
||||
</div>
|
||||
<ParameterDescription params={A1MViewParams} />
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Apartment;
|
||||
@@ -1,7 +1,71 @@
|
||||
import Apartment from "./Apartment";
|
||||
import { Unity, useUnityContext } from "react-unity-webgl";
|
||||
import { useEffect } from "react";
|
||||
import { ReactUnityEventParameter } from "react-unity-webgl/distribution/types/react-unity-event-parameters";
|
||||
import useStore from "../../store/store";
|
||||
import LoaderModal from "../../components/LoaderModal";
|
||||
import ButtonPanel from "../../components/desktop/ButtonPanel";
|
||||
import ParameterDescription from "../../components/desktop/ParameterDescription";
|
||||
import LayoutsButtonContainer from "../../components/desktop/LayoutsButtonContainer";
|
||||
|
||||
const Desktop = () => {
|
||||
return <Apartment />;
|
||||
const { loader, setLoader, setSendMessageToUnity } = useStore();
|
||||
|
||||
const {
|
||||
unityProvider,
|
||||
isLoaded,
|
||||
sendMessage,
|
||||
addEventListener,
|
||||
removeEventListener,
|
||||
} = useUnityContext({
|
||||
loaderUrl: "builds/estate-webgl.loader.js",
|
||||
dataUrl: "builds/estate-webgl.data.unityweb",
|
||||
frameworkUrl: "builds/estate-webgl.framework.js.unityweb",
|
||||
codeUrl: "builds/estate-webgl.wasm.unityweb",
|
||||
streamingAssetsUrl: "StreamingAssets",
|
||||
});
|
||||
|
||||
const handleSetLoaded = (isSceneLoaded: ReactUnityEventParameter) => {
|
||||
if (isSceneLoaded === 0) {
|
||||
setLoader(<LoaderModal />);
|
||||
} else {
|
||||
setLoader(null);
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
addEventListener("SetLoaded", handleSetLoaded);
|
||||
|
||||
return () => {
|
||||
removeEventListener("SetLoaded", handleSetLoaded);
|
||||
};
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (!isLoaded) {
|
||||
setLoader(<LoaderModal />);
|
||||
} else {
|
||||
setLoader(null);
|
||||
setSendMessageToUnity(sendMessage);
|
||||
sendMessage("LevelSwitcher", "LoadSceneSingle", "Outdoor/A1");
|
||||
}
|
||||
}, [isLoaded]);
|
||||
|
||||
return (
|
||||
<>
|
||||
{loader}
|
||||
<div className="pt-[101px] pb-[63px] px-[215px] relative">
|
||||
<div className="relative">
|
||||
<ButtonPanel />
|
||||
<Unity
|
||||
unityProvider={unityProvider}
|
||||
style={{ width: "100%", height: "100%" }}
|
||||
/>
|
||||
<LayoutsButtonContainer />
|
||||
</div>
|
||||
<ParameterDescription />
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Desktop;
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
import { useEffect } from "react";
|
||||
import { ReactUnityEventParameter } from "react-unity-webgl/distribution/types/react-unity-event-parameters";
|
||||
import { Unity, useUnityContext } from "react-unity-webgl";
|
||||
import useStore from "../../store/store";
|
||||
import LoaderModal from "../../components/LoaderModal";
|
||||
import ButtonPanel from "../../components/mobile/Appartment/ButtonPanel";
|
||||
import ViewControllerModal from "../../components/mobile/Appartment/ViewControllerModal";
|
||||
import { A1MViewParams } from "../../consts/viewParams";
|
||||
|
||||
const Apartment = () => {
|
||||
const {
|
||||
modal,
|
||||
loader,
|
||||
panel,
|
||||
setCurrentView,
|
||||
setModal,
|
||||
setPanel,
|
||||
setSendMessageToUnity,
|
||||
setLoader,
|
||||
} = useStore();
|
||||
|
||||
const {
|
||||
unityProvider,
|
||||
isLoaded,
|
||||
sendMessage,
|
||||
addEventListener,
|
||||
removeEventListener,
|
||||
} = useUnityContext({
|
||||
loaderUrl: "builds/estate-webgl.loader.js",
|
||||
dataUrl: "builds/estate-webgl.data.unityweb",
|
||||
frameworkUrl: "builds/estate-webgl.framework.js.unityweb",
|
||||
codeUrl: "builds/estate-webgl.wasm.unityweb",
|
||||
streamingAssetsUrl: "StreamingAssets",
|
||||
});
|
||||
|
||||
const handleSetLoaded = (isSceneLoaded: ReactUnityEventParameter) => {
|
||||
if (isSceneLoaded === 0) {
|
||||
setLoader(<LoaderModal />);
|
||||
} else {
|
||||
setModal(<ViewControllerModal parameters={A1MViewParams} />);
|
||||
setLoader(null);
|
||||
}
|
||||
};
|
||||
|
||||
const handleSetView = (view: ReactUnityEventParameter) => {
|
||||
setCurrentView(view as number);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
addEventListener("SetLoaded", handleSetLoaded);
|
||||
addEventListener("SetView", handleSetView);
|
||||
|
||||
return () => {
|
||||
removeEventListener("SetLoaded", handleSetLoaded);
|
||||
removeEventListener("SetView", handleSetView);
|
||||
};
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (!isLoaded) {
|
||||
setLoader(<LoaderModal />);
|
||||
} else {
|
||||
setLoader(null);
|
||||
sendMessage("LevelSwitcher", "LoadSceneSingle", "Outdoor/A1");
|
||||
setSendMessageToUnity(sendMessage);
|
||||
setModal(<ViewControllerModal parameters={A1MViewParams} />);
|
||||
setPanel(<ButtonPanel />);
|
||||
}
|
||||
}, [
|
||||
isLoaded,
|
||||
sendMessage,
|
||||
setLoader,
|
||||
setModal,
|
||||
setPanel,
|
||||
setSendMessageToUnity,
|
||||
]);
|
||||
|
||||
return (
|
||||
<>
|
||||
{modal}
|
||||
{loader}
|
||||
|
||||
<div className="h-screen overflow-hidden relative">
|
||||
{panel}
|
||||
<Unity
|
||||
unityProvider={unityProvider}
|
||||
style={{ width: "100vw", height: "100vh" }}
|
||||
/>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Apartment;
|
||||
@@ -1,7 +1,95 @@
|
||||
import Apartment from "./Apartment";
|
||||
import { useEffect } from "react";
|
||||
import { ReactUnityEventParameter } from "react-unity-webgl/distribution/types/react-unity-event-parameters";
|
||||
import { Unity, useUnityContext } from "react-unity-webgl";
|
||||
import useStore from "../../store/store";
|
||||
import LoaderModal from "../../components/LoaderModal";
|
||||
import ButtonPanel from "../../components/mobile/Appartment/ButtonPanel";
|
||||
import ViewControllerModal from "../../components/mobile/Appartment/ViewControllerModal";
|
||||
|
||||
const Mobile = () => {
|
||||
return <Apartment />;
|
||||
const {
|
||||
modal,
|
||||
loader,
|
||||
panel,
|
||||
setCurrentView,
|
||||
setModal,
|
||||
setPanel,
|
||||
currentVilla,
|
||||
setSendMessageToUnity,
|
||||
setLoader,
|
||||
} = useStore();
|
||||
|
||||
const {
|
||||
unityProvider,
|
||||
isLoaded,
|
||||
sendMessage,
|
||||
addEventListener,
|
||||
removeEventListener,
|
||||
} = useUnityContext({
|
||||
loaderUrl: "builds/estate-webgl.loader.js",
|
||||
dataUrl: "builds/estate-webgl.data.unityweb",
|
||||
frameworkUrl: "builds/estate-webgl.framework.js.unityweb",
|
||||
codeUrl: "builds/estate-webgl.wasm.unityweb",
|
||||
streamingAssetsUrl: "StreamingAssets",
|
||||
});
|
||||
|
||||
const handleSetLoaded = (isSceneLoaded: ReactUnityEventParameter) => {
|
||||
if (isSceneLoaded === 0) {
|
||||
setLoader(<LoaderModal />);
|
||||
} else {
|
||||
setModal(<ViewControllerModal />);
|
||||
setLoader(null);
|
||||
}
|
||||
};
|
||||
|
||||
const handleSetView = (view: ReactUnityEventParameter) => {
|
||||
setCurrentView(view as number);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
addEventListener("SetLoaded", handleSetLoaded);
|
||||
addEventListener("SetView", handleSetView);
|
||||
|
||||
return () => {
|
||||
removeEventListener("SetLoaded", handleSetLoaded);
|
||||
removeEventListener("SetView", handleSetView);
|
||||
};
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (!isLoaded) {
|
||||
setLoader(<LoaderModal />);
|
||||
} else {
|
||||
setLoader(null);
|
||||
sendMessage("LevelSwitcher", "LoadSceneSingle", "Outdoor/A1");
|
||||
setSendMessageToUnity(sendMessage);
|
||||
setModal(<ViewControllerModal />);
|
||||
setPanel(<ButtonPanel />);
|
||||
}
|
||||
}, [
|
||||
isLoaded,
|
||||
sendMessage,
|
||||
setLoader,
|
||||
setModal,
|
||||
setPanel,
|
||||
setSendMessageToUnity,
|
||||
currentVilla,
|
||||
]);
|
||||
|
||||
return (
|
||||
<>
|
||||
{modal}
|
||||
{loader}
|
||||
|
||||
<div className="h-screen overflow-hidden relative">
|
||||
{panel}
|
||||
<Unity
|
||||
unityProvider={unityProvider}
|
||||
style={{ width: "100vw", height: "100vh" }}
|
||||
/>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Mobile;
|
||||
|
||||
Reference in New Issue
Block a user