초보코딩(31)
-
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 56일차(최종프로젝트 7일차 부숴진 오브젝트를 자연스럽게 구현하기)
전 포스팅은 보면 물체의 움직임이조금 부자연스럽다고 느낄수가 있다. 일단 물체가 부숴질떄 부자연스럽게 부숴지는 것이 느껴질것이다. 그래서 만든것이 Brack 스크립트다. ParentObject와 같이 부모오브젝트에 넣어줄 스크립트이며 파괴되거나 복구될때 바꿀 오브젝트를 프리펩으로 받는다. 그리고 상호작용이 일어난 위치에서 파괴나 복구가 일어나며 그 모습이 자연스럽게 이어지게된다. Brack 클래스 코드 전문 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Brack : MonoBehaviour { public GameObject Prefab; public float breakForce; G..
2024.01.22 -
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 55일차(최종프로젝트 6일차 부숴버린 오브젝트 복구하기! 그리고 부수기! 시간을 되돌리자!)
부숴버린 오브젝트 복구하기! 그리고 부수기! 부숴버리겠다. 뭘? 당신을.. 지금 이것을 보고있는 당신!!!! 이 아니라 오브젝트를 부숴보자. 일단은 생각한 것이 있다. 어떻게 부수는가? 일단 그부분은 어제 생각해 보았다. 오브젝트의 역재생이 전부 끝마쳤을때에 부모오브젝트의 스크립트에 옵저버 패턴으로 불값이 전달된다는 것은 54일차 til에서 설명했다.**그렇다면 역재생이 끝났을 때 조각난 오브젝트들을 비활성화 시키고 완전체 오브젝트를 활성화 시키면** 마치 시간이 되돌아가 부숴진 조각들이 모여 완전한 형태를 이룬 모습처럼 보이게 될 것이다.**그런데 나는 조각들이 모여서 복구가 되는 모습도 구현하고 싶고 완전체 오브젝트를 파괴시키고도 싶었다.그러기 위해선 이 오브젝트들을 어떻게 하고싶은지 타입을 지정해야..
2024.01.18 -
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 53일차(최종프로젝트 4일차 보간에 대하여!)
보간(Interpolation)이란? 보간(Interpolation)은 두 데이터 포인트 사이의 중간값을 추정하는 기술입니다. 프로그래밍, 특히 게임 개발과 컴퓨터 그래픽에서, 보간은 부드러운 움직임과 변화를 만들기 위해 사용됩니다. 예를 들어, 애니메이션에서 객체가 한 위치에서 다른 위치로 이동할 때, 시작점과 끝점 사이의 중간 위치를 계산하는 데 사용됩니다. 보간의 유형과 사용 예시 1.선형 보간(Linear Interpolation): 두 값 사이를 직선으로 연결하는 가장 간단한 형태의 보간입니다. 예를 들어, 두 점 사이의 위치를 계산할 때 사용됩니다. float lerp(float a, float b, float t) { return a + (b - a) * t; } 이 코드에서 a와 b는 시작..
2024.01.16 -
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 52일차(최종프로젝트 3일차 시간을 되돌려 보자!)
개요 우리 프로젝트는 시간을 건드려 퍼즐을 풀어가는 컨셉을 잡고있다. 그래서 물체의 움직임을 반대로 되돌리는 기능이 필요하게 되었고 오늘 그것을 만들었다. "ReplayRecorder" 오브젝트의 시간을 되돌리는 스크립트 ReplayRecorder는 객체의 움직임을 기록하고, 이를 역 재생시킨다. 이 스크립트는 Stack를 사용하여 특정 시점의 프레임 데이터를 저장하며, 이 데이터를 사용해 객체의 움직임을 뒤집어 재생해 마치 시간을 되돌리는 듯 한 효과를 준다. 주요 기능 녹화 시작 및 중지: 객체가 움직일 때 자동으로 녹화를 시작하고 멈춘다. 역재생: 사용자가 클릭하면 녹화된 움직임을 역순으로 재생 녹화 및 재생 중지: 사용자가 다시 클릭하면 재생을 멈추고 기록된 데이터를 지운다. 구현 방법 Rigid..
2024.01.16 -
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 46일차(인벤토리 시스템 3 크래프팅!)
인벤토리 시스템 3 크래프팅 ! 클래스 이름 역할 설명 CragtingButton 크래프팅 버튼의 기능을 담당하며, 사용자가 아이템을 조합하여 새로운 아이템을 만들 수 있게 한다. CraftringItemHolder 크래프팅에 사용될 아이템을 보관하고 관리한다. 사용자가 아이템을 드래그 앤 드롭하여 크래프팅에 사용할 수 있도록 한다. ChestInventory 게임 내 상자와 같은 인벤토리 객체를 관리한다. 플레이어가 상자와 상호작용할 때 인벤토리 시스템을 표시하는 데 사용된다. PlayerInventoryHolder 플레이어의 인벤토리 시스템을 관리한다. 플레이어가 소지한 아이템을 관리하고 필요에 따라 아이템을 추가하거나 제거하는 기능을 한다. ResultItemHolder 크래프팅 결과물을 보관한다...
2024.01.05 -
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 45일차(인벤토리 시스템 2)
유니티 인벤토리 시스템 2 이번에는 저번의 인벤토리 시스템을 이어서 작성한다. 인벤토리 슬롯을 클릭하거나 이동시키거나 디스플레이에 보이도록 하는 스크립트를 작성하였다. 1. InventoryDisplay 스크립트 InventoryDisplay는 인벤토리 UI를 관리하는 추상 클래스다. 이 클래스는 인벤토리 시스템(InventorySystem)과 UI 슬롯(InventorySlot_Ui)을 연결하고, UI 업데이트를 처리한다. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.Events; public abstract class ..
2024.01.04