Spaces:
Running
Running
| let unityProfiler = (function () { | |
| let intervalId = 0; | |
| const storageKey = 'UnityPlayerConnectionAddress'; | |
| let profilerButton; | |
| return { | |
| createButton: (unityInstance) => { | |
| profilerButton = document.createElement('button'); | |
| profilerButton.style = 'background-color: lightgray; border: none; padding: 5px; cursor: pointer'; | |
| profilerButton.innerHTML = unityInstance.IsConnectedToProfiler() ? 'Stop Profiling' : 'Profile'; | |
| const startStatusUpdate = () => { | |
| if (intervalId === 0) | |
| intervalId = setInterval(updateProfilingStatus, 1000); | |
| } | |
| profilerButton.onclick = () => { | |
| if (unityInstance.IsConnectedToProfiler()) { | |
| unityInstance.StopProfiling(); | |
| } else { | |
| const ipAndPort = prompt(`Please input 'IP:port' of the Unity Profiler.`, localStorage.getItem(storageKey) || ''); | |
| if (ipAndPort) { | |
| unityInstance.ConnectToProfiler(ipAndPort); | |
| localStorage.setItem(storageKey, ipAndPort); | |
| startStatusUpdate(); | |
| } | |
| } | |
| }; | |
| const updateProfilingStatus = () => { | |
| profilerButton.innerHTML = unityInstance.IsConnectedToProfiler() ? 'Stop Profiling' : 'Profile'; | |
| } | |
| if (unityInstance.IsConnectedToProfiler()) { | |
| startStatusUpdate(); | |
| } | |
| return profilerButton; | |
| }, | |
| shutDown: () => { | |
| if (profilerButton.parentNode && profilerButton) { | |
| profilerButton.parentNode.remove(profilerButton); | |
| } | |
| clearInterval(intervalId); | |
| intervalId = 0; | |
| } | |
| }; | |
| })(); | |