728x90

전체 글 158

[Unity] 커비 개발 1,,, 일차?

영상이 안올라가는 관계로 캡쳐만 넣기 1. 커비의 움직임 + 애니메이션 -> 좌우 걷기, 점프, 날기, 뱉기, 삼키기 등등 2. 커비의 탐색 범위 내에 적이 있을 때 삼키면 적이 빨려들어옴 + 변신 가능 (적의 change 값을 받아 change로 능력 판단 및 변신) 3. enemy의 기본 이동 구현, random한 값으로 3초동안 움직이고, 다시 random을 돌려 3초동안 행동한다. (왼, 오, 가만히 있기) 4. 커비의 탐색범위 overlapbox 를 enemy에게도 적은 반경으로 적용시켜 적의 반경내에 커비가 들어온다면 debug로 공격을 찍게만 해뒀다. -> 추후 개발해라 5. 카메라는 커비를 따라다니며, 배경은 처리가 귀찮아서 그냥 카메라에 상속시켜버렸다. 영원히 같은 배경 유감,, 6. 커..

공부/Unity 2023.04.12

[Unity] C#으로 A* 알고리즘 구현하기 (대각선 여부, 코너 여부)

A star 알고리즘가중치를 이용한 길찾기 알고리즘 (나무위키 긁어옴) A* 알고리즘은 현재 상태의 비용을 g(x)g(x), 현재 상태에서 다음 상태로 이동할 때의 휴리스틱 함수를 h(x)h(x)라고 할 때, 둘을 더한 f(x)=g(x)+h(x)f(x)=g(x)+h(x)가 최소가 되는 지점을 우선적으로 탐색하는 방법이다. 이 f(x)f(x)가 작은 값부터 탐색하는 특성상 우선순위 큐가 사용된다. 휴리스틱 함수 h(x)h(x)에 따라 성능이 극명하게 갈리며, f(x)=g(x)f(x)=g(x)일 때는 다익스트라 알고리즘과 동일하다.A*를 사용하는 이유는 다익스트라를 직접 현실 문제에 적용하기가 매우 부담되기 때문이다. 당장에 네트워크 같은 디지털적인 공간이 아닌, 현실의, 사람이 사는 공간을 생각해보자. 사..

공부/Unity 2023.04.10

[Unity] 갤러그 만들기 - 2 (코루틴, 오브젝트 풀링, 코루틴 캐싱, 슬라이더)

적을 등장하게 만들어봅시다 Create Empty로 EnemySpawner를 만들어 준 뒤, component추가로 enemySpanwer 스크립트를 만들어줍니다. 코루틴을 이용해 적을 일정 시간마다 만드려합니다. private IEnumerator SpawnEnemy_co() { WaitForSeconds wfs = new WaitForSeconds(spawnTime); while (true) { float positionX = Random.Range(stageData.LimitMin.x, stageData.LimitMax.x); Vector2 position = new Vector2(positionX, stageData.LimitMax.y + 1f); Instantiate(enemyPrefabs, p..

공부/Unity 2023.04.06

[Unity] 갤러그 만들기 - 1 (Coroutine, ScriptableObject, Instantiate, Destroy)

오늘은 갤러그 만들기! 구현 내용: 배경화면 무한 스크롤, 플레이어 키 입력으로 이동, Coroutine을 이용한 총알 생성, 플레이어 맵 내에서만 이동 2D로 시작하고, 10:16 사이즈로 해상도 설정을 해줍니다. background 두 개를 unirun에서 했던 방식처럼 이어 붙여서 나중에 Loop 스크립트를 짜서 붙여주면 될거고요 Player를 저렇게 넣어주기 위해서 3개가 붙어있는 Player를 multiple로 바꿔서 Sprite Editor에서 잘라줍시다 컷컷 곱게 자르기 움직이는 모든 친구들을 위해 스크립트를 짜줍시다. Movement2D로 작성 public class Movement2D : MonoBehaviour { public float moveSpeed = 5f; [SerializeF..

공부/Unity 2023.04.05

[Unity] 유니런 중요 스크립트 및 기능 정리

Rigidbody 2D & Box Collider 2D & Circle Collider 2D 플레이어와 땅의 충돌을 처리하는 방법 -> collider2D & Rigidbody2D 사용하기! 물체에게 중력을 작용하게 만들기 위해 Rigidbody 2D를 넣어준다. 실행시켜보면 플레이어가 계속 떨어져서 화면에 안잡히게 된다. Rigidbody 2D에서 Collision Detection을 Continuous로 해줘야 충돌 감지를 끊기지 않고 계속 할 수 있다. 이전의 설정은 Discrete (이산)이었다. * Rigidbody: 중력과 동일한 효과 또한 Constraints에서 혹시 모를 Z축으로의 회전을 방지하기 위해 Freeze Rotation을 걸어준다. boxcollider를 추가할 시, 생긴 모양..

공부/Unity 2023.04.04

[Unity] 유니티 생명 주기 life cycle, 키보드 입력에 따른 물체 이동 코드

유니티에서는 기본적으로 C# 스크립트를 만들면 써있는 Update, Start 외에도 써있지는 않지만 자동으로 실행되는 함수들이 존재한다. Reset, Awake, OnEnable, Start, FixedUpdate, Update, LateUpdate, OnDisable, OnDestroy, OnApplicationQuite 함수들이 이에 속하는데 직접 몇가지를 실험해보고 이를 검사해보려고한다. Unity 공식 문서에 의하면 (https://docs.unity3d.com/Manual/ExecutionOrder.html) Awake -> OnEnable -> Reset -> Start -> FixedUpdate -> OnStateMachineEnter/Exit -> OnAnimatorMove -> OnAn..

공부/Unity 2023.04.03

[Unity] 왕초보를 위한 코드 5줄로 태양계 자전, 공전 구현하기!

Unity hub를 깔아주시고, 각자 원하시는 버전으로 유니티를 설치하고 진행하시면 됩니다 :) (저는 2020.3.36 버전을 이용했습니다) 새 프로젝트를 3D로 골라서 만들어줍니다 -> Create project 저의 경우 위에와 같이 레이아웃을 구성해주었습니다. (제 컴퓨터가 아닙니다! 정품 인증이 왜 안되어있는 컴퓨터인지 저도 억울합니다!!) Hierarchy 창에서 우클릭 > 3D Object > Sphere 로 3D 구를 만들어줍니다! 와! 벌써 행성 만듦 대박 허허 흰 알이 나왔네요 이제 이 친구는 태양입니다. 인스펙터창에서 이름을 바꿔줍시다 창조주의 마음으로 명명해주고 같은 원리로 수금지화목토천해 8가지 행성들도 추가로 만들어줍시다 ㄱㄱ 멋있게 생성을 완료해주었습니다~ 와~ 이제 크기를 맞..

공부/Unity 2023.04.03

[C#] 콘솔창의 키보드 입력 필요할때만 받아서 처리하기

콘솔로 리듬게임을 구현하고 싶었고, 이를 위해 키보드 입력을 받아야 했다. 하지만 while문 안에 ReadKey 함수를 넣으니, 키보드 입력을 받지 않으면 다음 while문으로 넘어가지 않는 문제점이 발생하였고, 이를 KeyAvailable을 이용해 해결했다. while (true) { if (Console.KeyAvailable) { break; } } Console.KeyAvailable을 사용하면 계속 입력받지 않아도 자동으로 while문을 돌며 키보드 입력이 있는지 확인할 수 있다. 그래서 키보드 입력이 있을 시에 이를 확인한다 의 용도로 보통 스위치 문을 많이 쓴다. static ConsoleKeyInfo input; input = new ConsoleKeyInfo(); 로 선언을 해 준 뒤 ..

공부/C# 2023.03.31

[C#] Window 콘솔에서 mp3파일 가져와서 재생하기

윈도우에서 mp3파일을 실행하기 위해 reference를 추가해준다. COM에 들어가 Windows Media Player를 둘다 확인해준다. 새로 사용한다고 선언을 해 준 뒤 WMPLib.WindowsMediaPlayer player = new WMPLib.WindowsMediaPlayer(); bool stop = false; ThreadPool.QueueUserWorkItem(_ => { player.URL = @"C:\Users\~~~~~~~.mp3"; //Url에 본인 컴퓨터에 저장된 노래 주소를 넣어주면 된다 // 무한 루프 시작 while (true) { } } }); Console.WriteLine($"{player.controls.currentPositionString} / {player..

공부/C# 2023.03.30
728x90
반응형