일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 크래프톤 정글 4기
- pintos
- 백준
- 핀토스
- anonymous page
- 파이썬
- 크래프톤정글4기
- project3
- 유니티
- 연결리스트
- 4기
- 크래프톤정글
- 크래프톤 정글
- 티스토리챌린지
- C
- 전쟁-전투
- 이벤트 함수 실행 순서
- BFS
- User Stack
- 네트워크
- 오블완
- 알고리즘수업-너비우선탐색2
- TiL
- KRAFTON JUNGLE
- 다익스트라
- Unity
- c#
- 추상클래스와인터페이스
- kraftonjungle
- 알고리즘
- Today
- Total
목록전체 글 (166)
말감로그

과일 나무 드랍과일 나무를 도끼로 한 번 치면 과일이 떨어지도록 했다.과일이 스폰될 위치(FruitSpawn) 와 떨어질 위치(FallPos)를 만들었다. 각 0.5f의 거리를 유지하도록 총 3개의 fruit 프리팹을 생성하고, 코루틴을 사용하고 Lerp를 통해 떨어질 위치까지 부드럽게 이동시키게 했다. void DropFruit() { isFruitDrop = true; for (int i = 0; i (); if (interactable != null) interactable.canInteract = false; while (elapsedTime 과일 생성 이후 나무를 치면 나무도 쓰러지면서 나무조각 생성 레이캐스트..

플레이어가 도끼를 들고 나무를 3번 치면 나무가 쓰러지면서 나무조각이 생성되게 할 것이다.나무 인식을 땅을 파는 작업을 했던 것처럼 타일맵으로 인식할까, GameObject로 나무를 생성해서 인식할까 하다가아무래도 애니메이션 작업도 유용한 GameObject로 프리팹을 만들기로 했다. 우선 Raycast를 이용해서 Tree GameObject를 인식하게 했다. 그리고 쓰러지는 애니메이션을 주기 위해 직접 애니메이션을 만들었다.Tree의 Rotation값을 통해 쓰러지는 효과를 주었고,쓰러지면서 Tree의 BoxCollider에 의해 플레이어가 옆으로 밀려나는 현상이 있어서, BoxCollider또한 꺼주었다. 본격적으로 Player가 나무를 인식하고 도끼를 들고 마우스 클릭 시 hitCount를 증가시..

ItemData ScriptableObject를 만들어서 아이템을 확장한 것과 같이 PlantData ScriptableObject를 만들어 식물 또한 데이터 관리와 확정성을 개선해주었다. 마찬가지로 Inventory 클래스와 Item.cs에 PlantData를 추가해주고 초기화한다. public class Inventory{ [System.Serializable] public class Slot { public string itemName; public Sprite icon; public int count; public int maxAllowed; public PlantData plantData; public S..

DayCycle하루 24시간이 지나면 다음 날로 변경이 되도록 DayCycle을 만들 것이다.실제 시간 10초가 지나면 게임 상 시간은 10분이 흐르도록 설정 할 것이고, 24시가 되면 요일도 변경하게 할 것이다.Fade In / Fade Out 효과를 줘서 시간의 흐름을 표현할 것이다.using System;using System.Collections;using TMPro;using UnityEngine;using UnityEngine.UI;/* 시간 흐름 관리*/public class TimeManager : MonoBehaviour{ public TextMeshProUGUI dayText; public Image fadeImg; private float timePerGameMinut..

아이템 리팩토링 확장하기 현재는 RICE_SEED와 TOMATO_SEED 아이템 뿐이다. 하지만 추후에 물뿌리개, 도끼 등등 더 많은 아이템을 확장하기 위해서는 스크립트를 변경해야 한다.아이템 데이터를 정의하기 위해 ScriptableObject를 사용한 클래스를 만들어준다. ScriptableObject는 Unity에서 데이터를 관리하고 저장하는 데 사용되는 클래스로, 일반적으로 게임의 상태를 저장하지 않고 데이터 자산(assed)처럼 여러 객체에서 공통으로 사용할 수 있는 데이터를 정의할 때 유용하다. 우선 ItemData 스크립트를 생성한다. [CreateAssetMenu]는 Unity의 에디터에서 ScriptableObject를 쉽게 생성할 수 있도록 도와주는 속성이다.// fileName =..

인벤토리 시스템 인벤토리 클래스를 정의해서 인벤토리 시스템을 관리할 것이다.//Inventory.cs[System.Serializable]public class Inventory{ public List slots = new List(); [System.Serializable] public class Slot { public CollectableType type; public Sprite icon; public int count; public int maxAllowed; public Slot() { type = CollectableType.NONE; count = 0; ..

플레이어 애니메이션은 Blend Tree를 사용해봤다. Blend Tree 애니메이션은 여러 애니메이션 클립을 하나의 트리에 넣고, 캐릭터의 속도, 방향, 각도 등을 기준으로 자동으로 애니메이션을 혼합하고 전환할 수 있다. 전체적인 애니메이션은 이런식으로 관리해놨다. 각 애니메이션 트리를 생성해주고 해당 애니메이션 블랜드 트리 안에 Front, Back, Left, Right 애니메이션을 연결해 준뒤, 파라미터를 생성해 각 애니메이션에 맞게 값을 주면 해당 값이 변할 때마다 각 애니메이션으로 실행되게 된다.Horizontal이 아닌 LastHorizontal로 준 이유는 애니메이션이 이동하다 멈추면 정면을 바라보게 되어있어서, 마지막 누른 키를 저장 후 그 방향을 바라보게 하였다. public clas..

통통 튀는 효과를 주기 위해 PhysicsMaterial 을 생성해서 추가한다.Mesh Object > Trail Render 컴포넌트 추가폭발 파티클 자식 오브젝트에 추가 코루틴을 사용해서 수류탄 터지는 효과를 구현하고 SphereCastAll 레이캐스팅을 사용하여 수류탄과 충돌한 모든 오브젝트(Enemy)를 가져와 넉백 효과를 준다.void Start(){ StartCoroutine(Explosion());}IEnumerator Explosion(){ yield return new WaitForSeconds(3f); //물리적 속도를 모두 0으로 초기화 // rigid.velocity = Vector3.zero; // rigid.angularVelocity = Vector..

플레이어 회전플레이어가 오브젝트에 닿으면 혼자 빙글빙글 도는 현상이 있었는데, 이것은 외부 충돌에 의해 리지드바디의 회전 속력이 발생해서 도는 것이다.그래서 angulerVelocity - 물리 회전 속도 를 0으로 지정하여 스스로 돌지 않게 한다.void FixedRotation(){ // 물리 회전 속도를 0으로 지정하면 스스로 돌지 않게 됨. rigid.angularVelocity = Vector3.zero;} 충돌 레이어 설정Layer Collision Masks - 레이어들의 상호 간 충돌 설정 탄약은 탄약만 충돌, 플레이어 총알은 플레이어 무시 하도록 설정해준다. 플레이어 벽 관통 방지RayCast로 벽 오브젝트를 감지하여 벽을 관통하지 못하게 한다.void StopToWall()..