<text 스크립트에서 설정>
using UnityEngine.UI; 을 먼저 사용
public Text txt; 이런 느낌으로 text 설정
입력은 ScriptTxt.text = ""; 이런 느낌이고 느낌표 안에 원한는 문자열을 입력하면 된다.
<특정 객체 크기 변경>
transform.localScale = new Vector3(1f, 1f, 1f);
<삽질한 부분>
<스트림 2개 생성>
streamer_2 = new AugmentedRealityStreamer("ws://192.168.1.162:4649/Broadcast", ArMediaPlayer_2);
streamer_2.Connect(name);
처음 봤을 때 스트리머 생성시 할당할 매개변수에 MediaPlayer를 넣는 공간이 있어서
각각 MediaPlayer 별로 스트림을 생성하려고 하였다.
그 후 보니 서버의 User List에서 같은 IP가 2개가 발견 되었다. 이를 본 후 굳이 스트리머를 2개 생성할 필요가 있을 까 생각 되어서 1나만 일단 생성해두었다. 현재 상태를 보면 렉이 가끔식 발견된다. 따라서 다시 2개로 수정해야 할 필요도 있을 것 같다.
<코루틴 함수로 이동 시키기>
첫번째
private IEnumerator moveToTarget(int type)
{
Vector3 nowPs = avpro.transform.position;
Vector3 live_nowPs = live_avpro.transform.position;
while (true)
{
if(type == 1)
{
avpro.transform.position = Vector3.MoveTowards(nowPs, mid_ps.transform.position, 0.1f);
live_avpro.transform.position = Vector3.MoveTowards(live_avpro.transform.position, low_ps.transform.position, 0.1f);
}
else if(type == 2)
{
avpro.transform.position = Vector3.MoveTowards(nowPs, low_ps.transform.position, 0.1f);
live_avpro.transform.position = Vector3.MoveTowards(live_avpro.transform.position, mid_ps.transform.position, 0.1f);
}
/** 1초 딜레이 **/
yield return new WaitForSeconds(0.5f);
}
}
두번쨰 변경
private IEnumerator main_video()
{
for(int i=0; i<200; i++)
{
avpro.transform.localScale = Vector3.MoveTowards(small_sc, big_sc, 0.2f);
live_avpro.transform.localScale = Vector3.MoveTowards(big_sc, small_sc, 0.2f);
avpro.transform.position = Vector3.MoveTowards(low_ps.transform.position, mid_ps.transform.position, 0.2f);
live_avpro.transform.position = Vector3.MoveTowards(mid_ps.transform.position, low_ps.transform.position, 0.2f);
yield return new WaitForSeconds(0.5f);
}
}
private IEnumerator main_live()
{
for (int i = 0; i < 200; i++)
{
avpro.transform.localScale = Vector3.MoveTowards(big_sc, small_sc, 0.1f);
live_avpro.transform.localScale = Vector3.MoveTowards(small_sc, big_sc, 0.1f);
avpro.transform.position = Vector3.MoveTowards(mid_ps.transform.position, low_ps.transform.position, 0.1f);
live_avpro.transform.position = Vector3.MoveTowards(low_ps.transform.position, mid_ps.transform.position, 0.1f);
yield return new WaitForSeconds(0.5f);
}
}
코루틴 사용시 주의사항
if(coroutine != null)
{
StopCoroutine(coroutine);
}
coroutine = main_video();
StartCoroutine(coroutine);
이런 식으로 작성해야 한다
<유니티 UI 우선순위>
유니티에 가끔식 2D를 보면 겹치는 이미지가 있다.
이 이미지의 우선 순위는 첫번째 자식 객체에 가까울 수록 밑에 깔리고 뒤로 갈수록 위에 싸이는 구조로 간다.
따라서 아래와 같이 순서를 직접 변경해줌으로써 누가 뒤에 깔리고 앞으로 올지 정할 수 있다.
avpro.transform.SetAsFirstSibling();