Clolent

그려지는 순서 즉 Renderer Queue 에 접근하기


인터넷에 찾다찾다 transform.renderer.material.rendererqueue 가 안되서 빡친 그대들을 위해


오브젝트 자기 자신의 Mesh Renderer 을 GetComponent 로 받아온다.

이제 이것을 통해 접근이 가능하다. ㅠㅠ


ex)     MeshRenderer rend;

rend = GetComponent<MeshRenderer>();

rend.material.renderQueue = 3500;  // 기본값이 3000 3000넘어가면 더빨리그려짐 ! 


잘은 모르지만 대충 화면에 그려지는 작업을 렌더링 이라고 부른다고 알고있다. 그 렌더링의 순서를 더 빨리하면 

빌어먹을 NGUI 때문에 내가 원하는게 안그려지는 일을 피할수있다는건데, 이놈의 RendererQueue 가 어디숨어있는지 알수가 있어야지 대체, 인터넷에서 찾은 것들은 다 똑같은 소리만 하는데 난 안된다고 그게 버젼이 높아서 5.4


어떤 특정 값을 범위 안에 묶어두기


mathf 안에 clamp 라는 함수가 존재한다. 이 clamp 를 통해서 가능하다.

clamp 함수의 반환값은 int 혹은 float 이며 인자는 ( 입력값 , 최소값, 최대값 ) 이다.


만약 내가 넘겨준 입력값이 최소보다 작다면 최소값을 반환해주고, 최대값보다 크다면 최대값을 반환해주고 정상적으로 사이에 있는 값이라면 원래값을 반환해주는 구조를 가지고 있다.

사실 if 문으로 구현가능하지만 귀찮기때문에


Scene 전환하기 

File - Build Setting 에서 전환 하고자 하는 씬들을 추가해 놓고나서 스크립트 상에서

Application.LoadLevel("씬이름") 을 통하여 씬을 전환할수 있다. 



게임 멈춰버리기!

Time.timeScale = float   인데, 0 이면 아예 멈추는 것이고 1이면 정상속도 이다. 

중간중간 슬로우 모션으로 뭔가를 보여주거나 게임 오버당했을때 게임을 멈춰버리는 걸 

이런식으로 구현 하는듯 하다!


오브젝트 끄기 혹은 켜기

그동안 gameObject 로 접근해서는 기껏 한다는 일이, transform 접근 하거나 등의 다리로 쓰는 것이 끝이었다.

하지만 이젠 아니다.


gameObject.SetActive( bool ) 을 통해서 컴퍼넌트 그 맨위에 있는 것을 끄거나 키거나 할수있다! 

물론 true 면 켜지는거고 false 면 꺼지는 거다.


버튼

2D 마녀게임을 만드는 동안에는 NUGI 의 힘을 빌어 썻는데 아마 비슷할거다.

Box Collider 가 있어야 하고, OnClick 시의 오브젝트를 연결하고 해당 오브젝트의 어떤 값을 건드리거나 

함수를 호출해 줄수가 있다.


Button Message 등등 이거저거 많으므로, 잘 찾아보고 쓰자


대망의 오디오 플레이

너무 간단한것...오디오 클립( MP3 파일도 그냥 가져다 넣으니 들어가더라... ) 을 컴퍼넌트에 추가하고

'Audio Listener' 을 추가해준다. 응...끝낫다. 다만 중간에 어떤 곳에서 음악을 바꿔야 할경우


Audio Source 를 GetComponent 로 받아온다음 클립을 바꿔주고 ( 물론 바꿔줄 대상이 뭔지 미리 알아야 겠지 ? 링크걸어 놔야겠지 ?? ) Play( ) 시켜주면 된다.....허무할정도로 쉽다.


씬이 전환되면 기존의 오브젝트들은 사라지지만....남기고 싶은것이 있다면

DontDestroyOnLoad ( 대상 )  굉장히 직관적이다 로드할때 파괴하지 말란다 대상을 그렇다.

오디오 재생하던게 중간에 뚝끊기고 새로만드느니, 이미 만들어져 있던아이를 가져다 쓰는게 아무래도

좋지않겠는가? 그럴때 쓰는것이다.

댓글 로드 중…

블로그 정보

Clolent - 커피물조절달인

최근에 게시된 글