본문 바로가기

Unity

(15)
유니티 배경 무한반복, 배경 스크롤링(Background Scrolling) 배경이 왼쪽으로 계속 이동하다가 특정 위치에 도달하면 오른쪽으로 다시 이동시키는 방법입니다.배경이 끝없이 이어지는 효과를 줄 수 있습니다.   1. 배경이미지 배치배경 이미지 두장을 나란히 배치합니다.저는 이미지1(0,0,0), 이미지2(19.2,0,0)에 배치했습니다.두 번째 이미지의 x좌표가 배경이 무한 반복되는 지점이 됩니다!!   2. Background 스크립트 작성public class Background : MonoBehaviour{ public float speed = 5f; // 이동 속도 public float size = 19.2f; // 두번째 이미지의 x 좌표 // Update is called once per frame void Update() { ..
Unity 오브젝트 클릭해서 회전시키기 #Rotate #FixedUpdate() 드래그한 방향으로 오브젝트를 회전시키는 방법! 유튜브 튜토리얼 영상을 따라 만들어 보았다.그런데 이 튜토리얼을 따라 하며 간과한 것이 있다.실행환경이 다른경우 터치나 클릭을 인식할 때 '마우스 클릭 = 모바일 터치'로 자동으로 호환이 되는 줄 알았는데 그게 가능한 메서드와 아닌 메서드가 별도로 있다는 것이다. (왜 당연하다 생각했을까..?) 그래서 아래와 같이 기능을 구현했을 때 모바일에서도 정상 작동을 하는지 정확히 모르겠다... 😭정확히 확인해본 뒤 업데이트 할 예정이다!   시작! 🍙   1. 오브젝트 만들기큐브 오브젝트 6개를 만든다. Scale값은 2로 설정했다. 2. Rigidbody 컴포넌트 추가1. 큐브 오브젝트 Inspector  > Add Component > Rigidbody 2...
Unity: 정점 셰이더와 프래그먼트 셰이더 #Vertex Shader #Fragment Shader 셰이더를 사용하면 움직임도 만들어낼 수 있는거야?색깔이나 투명도같은 정적인 부분만 건드릴 수 있는 줄 알았는데.맞아, 셰이더는 보통 색상, 투명도, 텍스처 등 그래픽적 특성을 제어하는 데 사용되지만정점 셰이더를 통해 오브젝트의 위치나 형상을 변화시킬 수도 있어.셰이더는 크게 두 가지로 나눌 수 있어.프래그먼트 셰이더(Fragment Shader):이미지의 색상, 밝기, 투명도 등 픽셀 단위의 그래픽 특성을 제어해.예를 들어, 특정 색상으로 오브젝트를 칠하거나, 텍스처를 적용하거나, 투명도를 조절할 수 있어.정점 셰이더(Vertex Shader):오브젝트의 정점(Vertex) 데이터를 제어해, 즉 오브젝트의 형상이나 위치를 변경할 수 있어.예를 들어, 물결 효과를 만들기 위해 정점의 위치를 시간에 따라 변..
Unity: .ttf 폰트를 TMP 폰트로 변경하는 방법 TrueTypeFont(.ttf)Unity 텍스트 시스템에서 기본으로 사용하는 폰트 형식텍스트를 비트맵으로 렌더링 한다.  크기 조절, 회전 시 품질이 떨어질 수 있다.대량의 텍스트, 복잡한 텍스트 렌더링에서는 성능이 떨어질 수 있다. TextMeshPro(TMP)텍스트를 벡터 기반으로 렌더링 한다.크기를 조절하거나 회전할 때 높은 품질을 유지한다.텍스트가 선명하고 특히 작은 글씨나 UI 텍스트에서 깔끔하게 보인다.최적화가 잘 되어있어 대량의 텍스트나 복잡한 UI, 다양한 텍스트 스타일을 적용한 상황에서 성능이 뛰어나다.고품질 렌더링과 다양한 기능을 제공하므로 메모리 사용량이 더 많을 수 있다. - 즉 ttf는 기본적인 텍스트 렌더링에 적합하지만, 고급 기능과 높은 품질이 필요할 때는 한계가 있다.- ..
Unity 체력바 만들기 #Slider 학원에서 실습했던 게임 예제를 복습하던 중종종 찾게 될 것 같아서 체력바 만드는 방법을 정리해 보았다.  시작! 🍙   1. Slider 만들기1. 하이어라키창 우클릭 > UI > Slider자동으로 캔버스 하위에 슬라이더가 생성된다.2. Handle Slide Area는 사용하지 않을 거라 삭제!  2. 크기 조절원하는 크기로 설정한다.나는 Width: 150, Height: 40으로 설정 3. 색상 설정 Background: 어두운 회색Fill: 연두색  4. 체력바 꽉 채우기 슬라이더의 값을 1로 올려도 슬라이더가 꽉 채워지지 않고 빈 공간이 남는다.값이 0일 때는 오히려 체력이 남아있는 것처럼 보이는데 Fill Area의 Rect Transform이 Background보다 작기 때문이다. 1. ..
Unity 오브젝트 자동으로 색상 변화시키기 #Color Lerp 유니티로 무언가 하다 보면 자동으로 색상을 변화시켜야 할 때가 있는데유튜브에 간단한 강의가 있어서 따라 해보았다!   시작! 🍙   1. 오브젝트 만들기큐브를 이용해 바닥과 도미노 모양의 오브젝트 5개를 만든다. 2. 머터리얼 할당1. project > Create > New Material2. Material 색상: 흰색2. Cube > Mesh Renderer > Material 할당  3. ColorLerp 스크립트 작성 public class ColorLerp : MonoBehaviour{ MeshRenderer cubeMeshRenderer; [SerializeField] [Range(0f, 1f)] float lerpTime; // 색상이 변하는 속도 [Serialize..
Unity Ch7 - Collider, OnCollision, OnTrigger Collider(콜라이더) 오브젝트에 물리적인 표면을 만든다 콜라이더가 있으면 콜라이더를 가진 다른 오브젝트와 충돌할 수 있다 트리거 콜라이더(Is Trigger✓) 충돌한 물체를 밀어내는 물리적인 표면이 없다 따라서 겹치거나 서로 통과해 지나갈 수 있고 충돌 자체를 감지한다 - 플레이어가 특정 영역으로 진입했는지 감지할 때 - 충돌이 감지되었을 때 어떤 기능을 실행하는 방아쇠로 사용 충돌 이벤트 메서드 콜라이더를 가진 게임 오브젝트는 자신이 충돌한 사실을 스스로 알 수 없다 그 대신 Rigibody 컴포넌트가 각 오브젝트에게 '충돌했다'는 메시지를 보낸다 이때 충돌한 상대 오브젝트에 대한 정보도 함께 전달한다 메시지의 종류 - OnTriggerEnter - OnCollisionEnter - 등등 Rig..
Prototype4: 플레이어를 따라가는 몬스터, normalized, Time.deltaTime Monster.cs public float Speed = 3f; private Vector3 Direction; void Start() { // 플레이어 오브젝트를 들고온다 Player = GameObject.Find("Player"); } void Update() { // Player를 향하는 방향 벡터 계산 // 플레이어의 위치에서 나(=Monster)의 위치값을 뺀다. Direction = (Player.transform.position - transform.position).normalized; // 계산된 방향으로 이동한다 (이동할 방향 좌표 * 속도 * 프레임 간의 시간간격) transform.Translate(Direction * Speed * Time.deltaTime); } normali..