<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();

+ Recent posts