일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Environment Reflections
- muilt controller
- WebGL
- AssetBundle
- 유니티
- 랜더스트리밍
- 에셋번들
- Rewired
- RenderStreaming
- Unity
- unityhub
- untiy
- apk
- 반응형레이아웃
- webview
- Specular Highlights
- 역직렬화 오류
- android app bundle
- Android
- Unity VisualStudio
- Depth camera
- DS4
- 구글플레이스토어
- AR
- 듀얼쇼크4
- 커스텀쉐이더
- TextMeshPro 한글
- kinect v2
- web3D
- TextMeshPro
- Today
- Total
기억저장고
[RenderStreaming] 랜더스트리밍 Brodcast로 Connect ID 각각 설정하는방법 본문
스트리밍 Brodcast로 Connect ID 각각 설정하는방법
1. WebApp 수정
1-1. WebApp 원본 파일 다운로드
https://github.com/Unity-Technologies/UnityRenderStreaming
1-2. 파일위치 확인
*Broadcast html/js 파일위치
C:\Users\chaelin\Documents\WebApp\client\public\receiver
(WebApp - client - public - receiver)
1-3. connectID 값 지정스크립트 작성
**(WebApp - client - public - receiver - index.html)
body 태그안에 아래 코드 추가
<input id="myConnectId" type="number" min="0" max="4096">
**(WebApp - client - public - receiver - main.js)
async function setupRenderStreaming() 함수내용 변경
let myConnectID =document.getElementById('myConnectId').value;//수정내용
await renderstreaming.createConnection(myConnectID);//myConnectID변수 추가
1-4. WebApp 빌드
(npm install은 한번만 해도됨)
- 방법1. 빌드파일 안만들고 동작
cd C:\Users\chaelin\Desktop\MyWebsocket\WebApp
npm install
npm run build
npm run start -- --websocket
-방법2. 빌드파일 만들고 따로 동작
cd C:\Users\chaelin\Desktop\MyWebsocket\WebApp
npm install
npm run build
npm run pack
~~~생성된 WebServer.exe파일 실행 ~~~
cd C:\Users\chaelin\Desktop\MyWebsocket\WebApp
.\webserver.exe -w
참고: WebServer 커스텀 제작방법 문서
https://docs.unity3d.com/Packages/com.unity.renderstreaming@3.1/manual/customize-webapp.html
2. 유니티 샘플씬 수정
2-1. 유니티실행파일 실행시, 받은 어규먼트 값으로 ConnectID, URL 설정하기
private IEnumerator AssetLoadProcess()
{
string[] arguments = Environment.GetCommandLineArgs();
if (arguments.Length >= 2)
{
string url = arguments[1];
string connectionID = arguments[2];
brodcastSample.StartBroadCast(url, connectionID);
wsClient.StartWsClient(url);
}
else
{
Debug.Log("<color=red>ERROR</color>" + arguments.Length);
for (int i=0;i<arguments.Length;i++)
{
Debug.Log($"argument: {arguments[i]}");
}
}
yield return null;
}
2-2. BrodcastSample.cs의 StartBroadCast(string url) 함수변경
public void StartBroadCast(string url, string connectID)
{
if (renderStreaming.runOnAwake)
return;
GetComponent<Broadcast>().myConnectID = connectID;//Connect ID 커스텀 설정
RenderStreamingSettings.SignalingAddress = url;
renderStreaming.Run(
hardwareEncoder: RenderStreamingSettings.EnableHWCodec,
signaling: RenderStreamingSettings.Signaling);
inputReceiver.OnStartedChannel += OnStartedChannel;
}
2-3. Brodcast.cs의 OnOffer(SignalingEventData data) 함수변경
public void OnOffer(SignalingEventData data)
{
if (data.connectionId != myConnectID) //들어오는 ConnectID랑 내가 설장한 ConnectID랑 다르면 실행 안되게 함
{
return;
}
data.connectionId = myConnectID;//커스텀 커넥트 아이디 수정 -->사실 의미없음
if (connectionIds.Contains(data.connectionId))
{
Debug.Log($"Already answered this connectionId : {data.connectionId}");
return;
}
connectionIds.Add(data.connectionId);
foreach (var source in streams.OfType<IStreamSender>())
{
AddSender(data.connectionId, source);
}
foreach (var channel in streams.OfType<IDataChannel>().Where(c => c.IsLocal))
{
AddChannel(data.connectionId, channel);
}
SendAnswer(data.connectionId);
}
--
RenderStreaming 도큐먼트 사이트에는 Brodcast의 ConnectID값 설정하는 방법이 안나와있다.
그래서 connectID를 따로 설정할 수 있는 Bidirectional.html 로 하려고 했는데 마우스 Input관련해서 해결할 수 없어서 포럼에 물어봤었다.
원하는답변이 와서 정말정말 고마웠음..
--
선명하게 내보내는법
코덱 Defualt 로 설정하면 전체화면 시 깨지고, 물체를 움직였을때 잔상도 남는다
그래서 Video/VP9 profile id=0 로 코덱을 변경해주면 선명하게 나오고 잔상도 남지 않는다.
'Unity' 카테고리의 다른 글
untiy virtual camera 회전 안먹게 (0) | 2022.12.09 |
---|---|
Unity GPU마다 exe 프로그램 할당하는법 (0) | 2022.11.14 |
Unity PC 에서 Face Filter 만드는 법 (1) | 2022.10.28 |
Unity 이벤트 트리거 스크립트로 추가 (0) | 2022.10.28 |
[Unity] AR 반사 재질(메탈) 적용 안될 때..(에디터랑 다르게 나올 때) (0) | 2022.10.28 |