목록개발/Unity (23)
소소한 개발 공부

오브젝트가 화면 상 위로 올라갈 때(y 값 증가) 오브젝트가 상대적으로 멀어진다는 느낌을 주고자 한다. 위의 그림처럼 오브젝트가 아래쪽에 있을 수록 나중에 그려지게 한다. 그렇게 하기 위해 Sorting layer를 사용한다. private void Update() { this.GetComponent().sortingOrder = (int)(this.transform.position.y * -10); } sorting layer 값이 캐릭터의 y 값에 반비례하게 설정되도록 한다. (sorting layer는 값이 낮을 수록 빨리 그려지게 하기 때문에) 반비례를 위한 값(음수, 위의 코드에선 -10)을 캐릭터의 이동 단위에 맞추면 좀 더 정교하게 캐릭터의 sorting 순서를 조절할 수 있다.
유니티 상의 버튼을 스크립트로 클릭해서 버튼의 기능을 실행시키고자 한다. 스크립트 상에 OnClick~ 으로 함수를 만들고 버튼의 On Click에 함수를 연결시켜놨다면 OnClick~ 함수를 실행시키면 그만이지만 OnClick~ 함수를 만들어 연결한게 아닐 수도 있어서 스크립트로 버튼을 클릭하는 것에 대해 생각하게 됐다. 방법은 간단하다. GetComponent().onClick.Invoke(); 참고 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=yoloid&logNo=221559926366 [Unity]Button.OnClick 스크립트에서 호출하기 유니티에서 버튼 클릭이벤트는 게임화면 안에서 버튼을 클릭해야지 이벤트가 ..
게임에서 건물 같은 오브젝트의 위치를 터치로 이동할 때 오브젝트에 딸린 UI도 같이 움직여야 한다. Input.mousePosition을 사용한다. public void OnDrag(PointerEventData eventData) { if (!isPointerDown) return; // 이동 모션 // 월드 상의 오브젝트 이동 this.transform.position = Camera.main.ScreenToWorldPoint(Input.mousePosition); // 혹은 eventData 이용 this.transform.position = Camera.main.ScreenToWorldPoint(eventData.position); this.transform.position -= new Vecto..
글자를 한 글자씩 화면에 출력하면 일종의 타이핑 효과를 낼 수 있다. public Text textSpeaker; public Text textContent; void Start() { StartCoroutine(PrintText("주인공", "배고프다."); } IEnumerator PrintText(string speaker, string content) { textSpeaker.text = speaker; // content = content.Replace("\\n", "\n"); for(int i=0; i < content.Length; i++) { textContent.text += content[i]; yield return new WaitForSeconds(0.1f); } yield retu..

📝참고 : [RectTransform 이해하기: Pan & Pinch Zoom 구현 - PlaneK, 흔한 개발자의 메모장, 2020. 8. 18.] 을 참고해서 작성했습니다. 줌인 줌아웃 2D 탑다운 형식 게임의 터치 줌인-줌아웃을 구현하려고 한다. 1. Camera 는 Projection - Orthographic을 사용하며 줌인=OrthographicSize 감소 / 줌아웃= OrthographicSize 증가 2. 입력 방식은 터치. 3. 줌인-줌아웃의 중앙은 터치 위치를 기준 ex) 클래시오브클랜, 쿠키런 킹덤에서 줌인-줌아웃을 할 때 터치하는 곳을 중심으로 줌인-줌아웃 패닝(Panning) 화면이 줌인 되어 있을 때 화면을 끌어 당기는 기능을 추가할 것이다. 스크린을 터치로 탐색하는 것. 1...

📝[참고] [Unity | 유니티] 하트 충전 스크립트(로컬 디바이스 시간 기준) 출처: https://tenlie10.tistory.com/177 [유니티 게임 개발자] 애니팡처럼 시간에 따라 하트를 충전하는 기능을 만들고자 한다.게임을 껐을 때도 하트를 지속적으로 충전해야 한다. 1. 게임을 켰을 때 태초의 하트 값은 Max로 한다.- public 으로 된 love 값을 Max 로 설정해둔다. - 혹은 Save된 AppQuitTime이 없는 태초의 상태에서 AppQuitTime은 1970년 1월1일로 되어 있으므로 (현재시간 - AppQuitTime)을 계산했을 때 방치 시간이 어마어마하게 많아 love은 자동으로 Max 값이 되어있을 것이다. 2. 게임을 껐을 때 게임을 나간 시간 (AppQuitT..