본문 바로가기
반응형

유니티245

유니티 - 인보크로 일정 시간 이후 함수 실행하기, 반복하기 (Invoke) Unity 전체 링크 Invoke 함수는 간단하게 함수를 지연 시간 이후 실행하거나 반복할 수 있어 편리하다. 하지만 코루틴(Coroutine)과 다르게 매개변수를 받을 수 없고, 성능도 느리다는 단점이 있다. Invoke와 관련된 함수는 아래와 같이 6개가 있다. 실행 / 반복 / 취소 / 확인으로 나뉜다. void Invoke(string methodName, float time) ㄴ methodName 함수를 time 뒤에 실행한다. void InvokeRepeating(string methodName, float time, float repeatRate) ㄴ methodName 함수를 time 뒤에 repeatRate마다 호출한다. void CancelInvoke(); ㄴ 모든 Invoke를 취소.. 2022. 7. 16.
유니티 Attribute - ExecuteInEditMode / ExecuteAlways로 편집 모드에서 스크립트 실행하기 Unity 전체 링크 ExecuteInEditMode 또는 ExecuteAlways 속성을 스크립트에 추가하면 에디터가 플레이 모드가 아닌 동안에도 각 스크립트 컴포넌트의 콜백 함수가 실행된다. 또한, 플레이 모드가 종료되어도 오브젝트의 초기 조건이 변경되지 않고 그대로 남아있다. 오브젝트를 회전시키는 Rotate.cs를 큐브에 추가해보자. using System.Collections; using System.Collections.Generic; using UnityEngine; [ExecuteInEditMode] //또는 [ExecuteAlways] public class Rotate : MonoBehaviour { void Update() { this.transform.Rotate(new Vector.. 2022. 7. 10.
유니티 Attribute - MenuItem 속성으로 원하는 함수 실행하는 메뉴 만들기 (Calling Function with MenuItem) Unity 전체 링크 프로젝트가 커지면 스크립트에 에디팅 기능이 도움이 될 때가 많다. 유니티에는 특정 메뉴를 누르면 원하는 함수를 실행시킬 수 있는데, 다음과 같은 속성으로 가능하다. - MenuItem : 에디터 창 메뉴에서 static 함수 실행 - ContextMenu : Inspector에서 static이 아닌 함수 실행 - ContextMenuItem : 인스펙터 변수에서 static이 아닌 함수 실행 MenuItem MenuItem을 사용하기 위해서 UnityEditor를 선언한다. 그리고 static으로 아래 두 함수를 만들자. [MenuItem("Help/Help Me")] static void HelpMe() { Debug.Log("Help Me, Please..."); } [MenuI.. 2022. 7. 9.
유니티 Attribute - DisallowMultipleComponent로 스크립트 중복 금지하기 Unity 전체 링크 유니티의 컴포넌트를 추가하다 보면 아래와 같이 중복된 스크립트가 붙는 경우가 있다. DisallowMultipleComponent 속성을 이용하면 중복을 막을 수 있다. using System.Collections; using System.Collections.Generic; using UnityEngine; [DisallowMultipleComponent] public class OnlyOne : MonoBehaviour { } 이제 빈 오브젝트에 OnleOne.cs를 다시 추가해보자. 다음과 같은 에러가 발생한다. 또한 DisallowMultipleComponent을 추가했다면, AddComponent로 여러 번 추가해도 하나만 붙는다. Unity Plus: Easy 2D, 3D.. 2022. 7. 9.
유니티 에셋 - Lean Touch로 마우스 클릭 이펙트 보여주기 (Click Effect / Input Management) Unity 전체 링크 유니티에서 마우스를 클릭하면 클릭 표시가 나도록 해보자. 마우스 Input 처리에 관한 괜찮은 무료 에셋으로는 Lean Touch가 있다. 유료 버전은 다음을 참고하자. Lean Touch를 Import 하자. Lean Touch를 설치하면 [Assets] → [Plugins] → [CW] → [LeanTouch] → [Examples]에 여러 예제가 보인다. 위의 클릭 표시를 나타내는 이펙트 외에도 많은 Input 처리가 있으니 직접 체험해보자. 여기서는 마우스 클릭 이펙트 효과만 보자. Ctrl + Shift + N으로 빈 오브젝트를 만들고 Lean Touch Simulator를 추가한다. LeanTouch.cs는 자동으로 추가된다. Multi Drag Key = Left Alt.. 2022. 7. 9.
유니티 C# - Switch Expression (스위치 표현식) Unity 전체 링크 방향을 Enum으로 0, 1, 2, 3, 4, 5로 아래와 같이 정의하자. enum DIRECTION { FORWARD, BACK, RIGHT, LEFT, UP, DOWN, } 이렇게 하면 for 루프로 순회가 가능하다. for (DIRECTION i = DIRECTION.FORWARD; i < DIRECTION.DOWN; i++) //Do Something 그런데 방향에 대한 실제 Vector가 필요하다고 가정하자. (FORWARD라면 Vector.forward) 그러면 아래의 함수가 필요하다. Vector3 getDirection(DIRECTION dir) { if (dir == DIRECTION.FORWARD) return Vector3.forward; if (dir == DI.. 2022. 7. 8.
유니티 - 코루틴으로 오브젝트 90도 회전하기 (Rotate GameObject using Coroutine) Unity 전체 링크 코루틴을 이용하여 오브젝트를 클릭하면 오브젝트를 90º 돌려보자. 코루틴에 대한 글 - 블럭 한 칸 이동하기 (그리드 기반 이동, 코루틴) - SmoothDamp를 코루틴에서 사용하기 (SmoothDamp with Coroutine) 을 참고하여 RotateCoroutine.cs를 먼저 만들어보자. Quaternion을 이용하여 회전한다. public class RotateCoroutine : MonoBehaviour { float rotateTime = 0.1f; float round90(float f) { float r = f % 90; return (r < 45) ? f - r : f - r + 90; } private IEnumerator moveBlockTime() { ro.. 2022. 7. 8.
유니티 UI - Scale With Screen Size로 캔버스 UI 크기 자동 변환하기 Unity 전체 링크 아래와 같이 UI에 Text가 있다. 이 Text를 어떤 화면에서도 왼쪽 위로 고정하기 위해서는 Anchor 기능을 설정할 필요가 있다. 화면을 변환하면 아래와 같이 같은 위치에 고정이 된다. 하지만 글자 크기도 고정되어 화면의 크기에 따라 UI가 보기 싫어진다. Canvas의 [Canvas Scaler] → [UI Scale Mode]를 Scale With Screen Size로 변경하면 간단히 해결할 수 있다. 아래는 Scale With Screen Size로 설정한 결과다. Unity Plus: Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store H.. 2022. 7. 4.
유니티 UI - Text Mesh Pro 텍스트에 그림자 효과 넣기 (Drop Shadow) 깃허브 데스크탑으로 프로젝트 관리하기 강의 오픈!! (인프런 바로가기) Unity 전체 링크 Text에 그림자를 추가하기 위해서는 아래와 같이 Shadow 컴포넌트를 추가했었다. 그러나 Text Mesh Pro에서는 Shadow 컴포넌트를 추가해도 아무 반응이 없다. 텍스트 메쉬 프로에는 그림자 효과가 내장되어 있다.그림자 효과를 위해서는 바로 아래의 Material을 수정하면 된다. (Shadow 컴포넌트는 삭제) Underlay를 체크하고 Softness 슬라이드를 이동해보자.그리고 Offset을 적절히 변경해보자.그림자 효과가 나타나는 것을 알 수 있다. 또한 Outline을 선택하면 간단히 외곽선 효과를 줄 수 있다. Unity Plus: Easy 2D, 3D, VR, & AR software f.. 2022. 7. 4.
반응형