오늘은 랜덤맵을 만들때 flood fill(seed fill) 알고리즘을 활용해 보고자 한다. flood fill(seed fill) 알고리즘은 언제 사용하나? 현재 위치에서 막히지 않고 접근 가능한 영역의 좌표를 알고 싶을때 그림판의 채우기 기능 구현 맵에서 막히지 않게 구조물 만들기 flood fill(seed fill) 은 어떻게 동작하는 걸까? 십자 모양으로 (위, 아래, 왼쪽, 오른쪽)을 살펴보면서 이미 확인을 했는가? 아니면 막혀있는가? 를 확인 만약에 확인도 안했고 막혀 있지도 않으면 "갈수 있는 장소에 추가" 더이상 살펴볼 곳이 남지 않을 때까지 수행 응용하기 실제 접근 가능한 영역 과 이론적으로 접근 가능한 영역 비교 실제 접근 가능한 영역이, 이론적으로 접근 가능한 영역 보다 작으면 막..
오늘은 유니티에서 랜덤한 움직임을 나타내는 방법을 알아보려고한다. 랜덤 움직임이 사용되는 예시는 주로 아래와 같다 1. 적이나 사물들이 평소에 어슬렁 거리며 돌아다니는 것을 표현 2. 이펙트를 주기위한 화면 흔들기 랜덤 움직임을 사용하기 위해서는 아래의 기능들이 사용된다. 1. 반복하기 2. 랜덤하게 방향 설정하기 3. 해당 방향으로의 이동하기 Coroutine 이해하기 1. Cotoutine이란 Cotoutine은 일단 오브젝트이다. 그리고 그 안에서 코드를 제어할 수 있다. Cotoutine이 작동하는 원리는 아래 그림을 보면 된다. Coroutine의 역할은 IEnumerator라는 인터페이스에 담긴 내용을 "실행"하는 것이다. 여기에는 몇가지 의미가 있는데 기본적으로 스크립트의 코드가 수행되는 U..
오늘 구현할 것은 플레이어가 어떤 오브젝트에 닿으면 (Trigger 이벤트) 그 오브젝트를 플레이어 뒤쪽에 생성 플레이어의 이동방향데로 따라 붙은 오브젝트도 따라옴 Scene안에서의 Player 오브젝트 구조와 Components 설정 Player 스크립트 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { public Transform followerTf; public float diameter; private List followers = new List(); private List followerPos = new List(); float h; ..
2D게임에서 맵이 게임화면보다 클경우에, 화면을 플레이어 중심으로 비춰줄 필요가 있다. 배울것 Mathf.Clamp (value, min, max) : 최소값과 최대값을 넘지 않는 value를 반환 Vector3.Lerp(현위치, 목표위치, 걸리는 시간) : 목표 위치 까지 일정 시간동안 이동 (부드러운 움직임) using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraMove : MonoBehaviour { public Transform playerTf; public float speed = 3f; public Vector2 offset; public float mapWidth, map..
오늘은 Unity에서 멀티플레이 구현을 위한 기본적인 지식을 배우고자한다. 우선 멀티플레이 구현을 위해 필요한 8가지 요소를 알아보자 1) 네트워크 지연에 대한 허용수준 (Latency tolerance) - 네트워크 지연(Network latencies)은 먼거리에 있는 사람끼리, 혹은 이용하는 통신망에 따라 발생 할 수 있다. - 다른사람과 함께 플레이하기 위해서는 모든 플레이어가 같은 수준의 정보를 가질때 까지 기다려야 하기 때문에, - 게임을 만들 때 이러한 네트워크지연을 얼마만큼 허용할 것인지 정해야 한다. - 네트워크 지연은 예측(prediction)과 조정(reconciliation) 등의 기술을 이용하여 어느정도 완화 시킬 수 있다. 2) 세션당 플레이어 숫자(Players per sess..
오늘은 게임을 만들때 정말 중요한 다른 스크립트에 존재하는 변수나 함수에 접근하는 방법을 배워보려고 한다. 이걸 왜 알아야 하냐면 게임 전반에 걸쳐 여러 요소들에 영향을 받는 소지금이나 점수 같은 것들은 대부분 GameManager나 ScoreManager 같은 스크립트에서 관리하기 마련인데 이때, 이 GameManager에 접근해서 돈을 줄이거나 올리는 기능이 필요하기 때문이다. 예를들어 물건 거래 할때 소지금 증가, 감소 돈을 주었을 때 소지금 증가 몬스터 별로 주는 포인트가 다름 --> 각 몬스터가 죽었을때 몬스터에 해당하는 점수만큼 총 점수에 가산 이러한 기능들을 구현하는데 있어, 다른 스크립트에 존재하는 변수와 함수에 접근하는 방법을 반드시 알아야 한다. 방법은 크게 2가지가 있다. public..
Unity에서 데이터를 저장하고 불러오는 방법에 대해서 알아보고자 한다. Unity에서 데이터를 저장하고 불러오는 방법은 크게 3가지가 있다 [Unity 저장방법] 구분 장점 단점 PlayerPrefs객체 활용하기 매우 간단하다 1. 저장가능한 자료형에 한계가 있다 => int, float, string 2. 방대한 데이터 저장이 어려움 3. 온라인 멀티 플레이 불가능 Serialization 활용하기 보안이 좋다 빠르다 수정이 어렵 파일로 저장하기 (json, xml, csv ..) 방대한 데이터 저장이 가능 모든 자료형 저장이 가능 상대적으로 간단하다 온라인 멀티 플레이가 불가능 DB활용 방대한 데이터 저장이 가능 모든 자료형 저장이 가능 온라인 멀티플레이 가능 복잡하다 어짜피 간단하게 1. Play..
[이 글을 쓴 목적] 난 Unity로 게임을 만든다. 그리고 Unity는 C#이라는 언어를 기본적으로 사용한다. C#에서 사용되는 기본적인 자료형식을 이해하면 스크립트가 어떤 말을 하고 있는것인지 이해하는데 도움이 될거라고 생각했다. 무엇보다 나와같은 비전공자들이 실질적으로 코딩을 하는데 있어서 불편함이 줄어들면 좋겠다 이번 포스트에서 배울 수 있는 것들 참조형식(reference type)과 값형식(value type) 의 의미와 차이 이해 기본제공 형식(built-in type) 과 사용자 지정형식(custom type)의 의미 이해 기본제공 형식(built-in type)의 종류와 의미 C#문서에 나와있는 형식 세션의 목차는 다음과 같으며 이것들을 따라서 하나 하나 배워볼 예정이다. https://..
- Total
- Today
- Yesterday
- 가격데이터
- 경영학
- Unity
- 프로그래머스
- PYTHON
- 유니티
- 스타트업
- 터틀트레이딩
- IT기초
- 사진크롤링
- 마케팅
- 시스템투자
- json
- 파이썬
- requests
- 심리학
- beautifulsoup
- Anet
- ET5X
- 주식
- 주식투자
- It
- 알고리즘
- 일자별
- 크롤링
- 머신러닝
- C#
- 랜덤맵
- 비전공자
- 강화학습
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |