전체 글 33

유니티 - 시네머신(Dolly)

Dolly Track & Dolly Cart 컴포넌트Dolly Track: 카메라가 따라갈 경로(Path)를 Scene 뷰에서 손쉽게 그릴 수 있는 CinemachinePathDolly Cart: Path 위에서 실제로 움직이며 Virtual Camera를 부착하는 역할의 CinemachineDollyCartPath 정의 방법씬에 빈 GameObject를 만들고 CinemachinePath 컴포넌트를 붙여서 Waypoint(노드) 추가각 노드 간 보간(Catmull–Rom 등)으로 부드러운 곡선을 자동 생성카메라 “이동” 설정CinemachineDollyCart 의 Position → 0~1(normalized) 또는 실제 거리 단위(Units)로 지정Speed 속성으로 Cart이 Path 위를 달리는 ..

카테고리 없음 2025.04.23

유니티 Cinemachine

장점  1. 자동 카메라 제어Cinemachine은 카메라가 플레이어 또는 특정 타겟을 부드럽게 추적하도록 자동 보간, 리센트(recentering), 그리고 충돌 감지 등의 기능을 제공합니다.복잡한 수동 스크립트 작성 없이도 자연스럽고 시네마틱한 카메라 움직임을 구현할 수 있습니다. 유연한 구성 옵션 Virtual Camera, FreeLook, Target Group 등 다양한 카메라 유형을 제공하여 게임의 장르나 상황에 맞게 선택할 수 있습니다.각 카메라 타입마다 상세한 설정(예: Dead Zone, Soft Zone, Damping 등)을 통해 미세 조정이 가능하므로, 원하는 연출 효과를 쉽게 달성할 수 있습니다.   손쉬운 애니메이션 연출 Cinemachine은 애니메이션과 동기화된 카메라 연출..

카테고리 없음 2025.04.09

코딩 테스트 - 달리기 경주

https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr해당 부분의 문제와 관한것입니다 문제 설명얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등으로 바뀝니다.선수들..

카테고리 없음 2025.04.04

4.02 - 자동사냥 및 ClosetPoint

검모양 표식을 누르면 플레이어가 자동사냥으로 들어갑니다 자동사냥이 들어간다면 검모양 표식의 알파값을 설정했습니다.자동사냥을 누르면 Nav Mesh Agent를 활성화 하고 PlayerInput을 비활성화 시켰습니다.이때 플레이어는 자동사냥의 공격범위를 가지며 해당 공격범위안에 적이 들어오면 공격을 자동으로 합니다또한 스킬이 준비상태라면 스킬을 자동으로 시전합니다.다시 버튼을 누르면 Nav Mesh Agent를 비활성화, PlayerInput을 활성화 시킵니다. 또한 적과 플레이어가 ClosetPoint로 이용하여 공격을 하게끔 했습니다.   해당부분은 버튼을 눌렀을 떄 AutoMode가 true라면 작동하는 코드입니다.ClosetPoint란?Collider 클래스의 메서드 입니다.지정한 위치에서 해당 C..

스파르타 코딩 2025.04.02

UI InputSystem에 대한 트러블 슈팅

3D 서바이벌에 인벤토리를 만든 이후 인벤토리 슬롯 클릭 후 wasd 를 누르면 슬롯의 칸들이 움직이고Space를 누르면 마우스 왼쪽버튼을 클릭하는 부분이 있었습니다. 해당 부분땜에 인벤토리를 열고 움직이다가 스페이스를 누르면 인벤토리가 스페이스바를 눌렀을 때 마다껏다 켜졌다 하는 부분이 있었습니다. 해당 부분을 서칭을해서 찾아본 결과 Input Systemp을 쓰고 있을 경우하이어라이키에 있는 EventSystem에 있는 Input System UI Input Module에서Move 와 Submit 부분이 wasd, Space로 설정되어 있기 때문이었습니다해서 해당 부분을 None으로 바꾸는것으로 해결하였습니다.

스파르타 코딩 2025.03.19

3D 서바이벌 팀프로젝트 1일차

우선 저희의 와이어 프레임입니다. 저는 UI, 인벤토리, 제작창을 제작하기로 했습니다   제가 제작하고나서 작동을 어덯게 할지 진행방식을 한번 제작해봤습니다. 그래서 금일 한것은 우선 인벤토리 UI를 제작했습니다  사용할 인벤토리 UI입니다 우선은 UI만 제작되어있고 내일은슬롯에 아이템이 있는 상태에서 마우스를 올리면 좌측의 아이템 정보가 나오게끔 설정할 것이며아이템이 있는 슬롯을 클릭했을 때 장착할지, 사용할지, 버릴지, 장착해제할지를 정할수 있는 우측 아이콘이 나오게 할 예정입니다. 그 전에 우선 퀘스트창 UI를 먼저 제작을 한 이후 진행을 할 것입니다.

스파르타 코딩 2025.03.12

팀 프로젝트 끝! 주저리

오늘 드디어 팀 프로젝트가 끝났습니다! 해서 어려웠던 부분,  문제였던 부분들을 한번 적어볼까합니다  // 플레이어 주변 일정 반경에 생성됨  private Vector2 GetPositionAngle(float angle)  {      float radius = angle * Mathf.Deg2Rad;      return new Vector2(Mathf.Cos(radius) * range, Mathf.Sin(radius) * range);  } 플레이어 주변을 어덯게 회전시킬까 고민하다가 찾은게 Mathf 코사인과 사인의 활용이었습니다.쓰는 과정에서 그냥 수치를 건들이면서 테스트를 했습니다... 그래서 시간이 좀걸린거 같습니다. if ((enemyLayer.value & (1 {     if (at..

스파르타 코딩 2025.02.28

2.25 내배캠

// 포격 프리팹 [SerializeField] private GameObject boombardPrefabs; // 스킬이 떨어질 범위 [SerializeField] private float minRange = 1f; [SerializeField] private float maxRange = 6f; //스킬 범위(포격 크기) [SerializeField] private float skillSize = 0.5f; // 사라질 시간 [SerializeField] private float lifetime = 1f; // 스킬의 쿨다운 [SerializeField] private float cooldown = 3f; private bool isColldown = false; private Vector2 map..

스파르타 코딩 2025.02.25

2.24 내배캠

금일 팀 프로잭트 제작을 들어갔습니다 파트를 분배하면서 제가 스킬개발을 하기로 했습니다(해보고 싶었습니다). 가장 큰 문제는 스킬들을 많이넣어서 이것저것 생각하다 보니까 생각이 꼬여서 너무 난잡하게 스크립트가 작성된거 같아 싹다 삭제해서 다시 만들기로 했습니다. 가장 큰 문제점은 어떤스킬을 만들어야할까 였습니다.물론 사전에 만들 스킬 목록들을이런식으로 정리를 하긴 했지만 처음 파트를 나눌 때 무기에 스킬이 무조건 들어가야 하는 줄 알고무기랑, 스킬을 합쳐서 같이 할 계획이었지만 무조건 스킬이 들어가는 방식이 아닌 스탯이 증가하는 방식으로도쓰인다 하여 스킬과, 아이템을 분리 그에따라 인벤토리도 제작해야할거 같았습니다 해서 우선투사체가 가까운 적 방향쪽으로 일정 시간마다 발사 시켜주는 ProjectileSk..

스파르타 코딩 2025.02.24

2.21 내배캠

이제 2D 유니티 팀 프로잭트의 시작입니다! Fire & Water쿠키런궁수의 전설3가지 게임중 하나를 선택해서 해당 게임을 비슷하게 만듭니다 저희 팀의 선택은 궁수의 전설이였습니다 우선 이에관한 와이어 프레임과 필요한 클래스, 메스드 들을 miro.com 에서 작성하였습니다.   저희가 작성한 와이어 프레임입니다.  우선 도전과제쪽도 포함이 되어있긴 하지만 우선적으로 필수로 구현해야하는 부분들 먼저 끝내기로 회의가 되었습니다.도전과제 부분들을 고려해서 코드를 설계할 생각입니다(구현은 나중에, 차후 도전과제들을 시작할 때 코드를 뜯어 고치지 않도록)이후 게임의 기본적인 골격을 miro에 다시 작성하였습니다 이후 생각이 더이상 나지 않아 튜터님을 찾아가 이번 유니티 팀 프로젝트가 처음이라 도움을 받았습니다..

스파르타 코딩 2025.02.21