관리 메뉴

도드넷

도드 게임즈#4 - 유니티 스프라이트 테두리 스크립트간의 통신하는 법! 본문

창고/나만의 게임 제작

도드 게임즈#4 - 유니티 스프라이트 테두리 스크립트간의 통신하는 법!

도드! 2016. 8. 15. 17:52
반응형





스프라이트 하일라이팅, 테두리 만드는 방법!


- 롤이나 다른 전략시뮬이나 보면 타겟을 지정하면 테투리가 빨갛게 되는데 그거

어떻게 하는지는 정확히는 몰라도 오픈소스 자료하고 적용법 정도 공유해봄 :3


 1. 다음 압축파일을 받아서 에셋에 추가한다.


OUT LINE.zip


2. 원하는 오브젝트에 SpriteOutline 스크립트를 추가한다.


3. 스프라이트 랜더러에서 Material 을 SpriteOutline 을 골라준다.


4. Sprite Outline 셰이더를 sprite -> outline 으로 설정해준다.


이제 두께를 조절하면 된다.


그런데 두께를 전혀 다른 오브젝트의 스크립트에 의해 변경할수가 있을까?

플레이어 스크립트에 의해 전혀 다른 오브젝트인 어떤 선택된 적이 하일라이트되게 할수있을까?


바로


GameObject.GetComponent<컴포넌트이름>()


메소드를 사용하면 된다.


스프라이트 아웃라인의 두께를 조정하려면 당연히 SpriteOutline 스크립트에 접근해야한다.


Target.GetComponent<SpriteOutline>().outlineSize = 3;


즉 이런모양이 될것이다.


번역하면 Target이라는 게임 오프젝트의 SpriteOutline이라는 스크립트의

outlineSize라는 전역변수를 3으로 설정한다. 이다.


그러면 Target은 어떻게 지정할까? 어떻게 내 스크립트에 외부 오브젝트를 참조 혹은 불러오게할수있을까?


외부 게임 오브젝트를 불러오는 방법은 다양하다.


1. 콜라이더 충돌을 이용해서 게임 오브젝트 참조/불러오기


    void OnTriggerStay2D(Collider2D collider)
    {
        saveob = collider.gameObject;
    }


또는


Collider2D mycol = Physics2D.OverlapPoint(R_ClickPoint);



2. public 게임 오브젝트 변수를 설정하고 인스펙터에서 직접 지정하기


이건 그냥.. 퍼블릭 변수로 놓은다음 직접 끌어다가 놓으면 됨.



3. Find 메소드 이용하기


GameObject goCam = GameObject.Find("Main Camera");



아 그나저나 맨위 포니짤 내가 찍었지만 레알 디테일지린다. 애들 눈동자 움직임하고 하..

어떻게 이렇게 귀엽고 사랑스러운지. 업로드하다 심쿵함...






반응형
Comments