New 포폴 5일차 / UI 작업
개발일지/Unity 개인 포트폴리오 개발일지2022. 7. 12. 05:12New 포폴 5일차 / UI 작업

기본 UI작업 조이스틱도 좀 예쁘게 바꾸고, 버튼도 새로 만들어 주었다. 경험치와 HP,MP바, 오른쪽 상단에 옵션과 내 정보까지 .. 최소한의 UI만 만들었고 다 아틀라스로 묶어주었다. 데미지 텍스트 - 플레이어 몬스터들이 맞는 데미지 텍스트가 빨간색이라서 헷갈리기 때문에 일단 노란색으로 처리 했다. 그리고 맞을때마다 HP바가 움찔움찔 하니 맞을맛난다(?) 병사들의 HP바, 데미지 텍스트 전에 팀포폴을 할때 보니 몬스터 HP바를 오버레이로 설정한 캔버스를 이용해 월드투스크린 포인트로 띄운걸 봤었는데 오버레이라서 HP바가 항상 최상단에 나타나다 보니 몬스터가 뒤에있어도 Hp바가 앞에있는 캐릭터를 가려버렸다. 그래서 월드 스페이스 캔버스를 써서 띄웠다. 맘에든다 방패에 막혔을때 방패에 막혔을때는 데미지 텍..

[디자인 패턴] 옵저버 패턴(Observer Pattern)
프로그래밍 공부/자료구조&알고리즘 공부2022. 7. 12. 04:36[디자인 패턴] 옵저버 패턴(Observer Pattern)

옵저버 패턴(Observer Pattern) 한국의 20-30대 남성에게 옵저버를 물어본다면 대부분이 꾸물거리며 음흉하게 남의 기지를 훔쳐보는 프로토스의 옵저버를 떠올리실 것이다. 이 옵저버가 프로토스 뿐만 아니라 유니티에서도 많이 쓰이는 디자인 패턴중에 하나라고 해서 정리를 해보았다. 옵저버 패턴이란? 나도 이곳저곳 영상과 블로그 글을 참고하여 공부를 하고 왔지만 뭐든 딱 뭐라고 정의하는것이 참 어렵다. 옵저버 패턴은 Observer라는 뜻대로 감시자들이 있다. 이 감시자들이 계속 감시를 하다가 변화가 일어나면 이 변화에 맞는 행동들을 해준다.(콜백) 난 여러곳에 정리 되어 있는 정의만 보고나서 내가 포트폴리오를 만들면서 알림시스템을 썼을때의 방법일까? 라고 생각을 했었는데 달랐다. 난 비효율적으로 업..

New 포폴 4일차 / 병사 구현의 끝자락
개발일지/Unity 개인 포트폴리오 개발일지2022. 7. 11. 06:17New 포폴 4일차 / 병사 구현의 끝자락

필드에 있는 상대들이 병사라서 뭔가 몬스터라고 부르기가 애매하긴 하지만 오늘은 병사들의 스텟이라던지 전체적인 애니메이션과 전투 부분을 구현했다. 병사는 칼-방패를 쓰는 병사 2명과 긴 도끼를 쓰는 병사 1명이다. 쫓아오기 아직 맵 구현이 안돼서 패트롤 기능은 구현하지 않았다. 맵에 맞춰 코드를 짤거라서 좀 나중에 진행 예정이다. 전투 각 병사마다 공격 딜레이가 달라서 일정 시간마다 공격을 한다. 그냥 일반 병사라 단조로운 일반공격밖에 없지만 랜덤으로 스페셜한 공격을 하게 만들까 고민중이다. 플레이어가 양손검이라 맞을때마다 IK도 해제했다가 다시 적용해줘야 했다.. 아무래도 플레이어가 공격 우선권이 있게 하는게 맞기때문에 몬스터가 공격을 시전할때라도 플레이어가 때리면 HitTime이라는 변수를 두어 짧은 ..

New 포폴 2,3일차 / 애니메이션에 열중하기
개발일지/Unity 개인 포트폴리오 개발일지2022. 7. 10. 04:17New 포폴 2,3일차 / 애니메이션에 열중하기

그냥 기본적인 구현들을 하고 애니메이션작업을 계속 했다. 카메라 처리 전 포폴 만들때도 미뤄두고만 있었는데 카메라가 벽에 닿았을시에 처리를 해줬다. 바닥으로 해도 똑같이 처리된다. 다만 벽이랑 너무 가까웠을때 플레이어가 안보이는 현상을 처리해야 할 것같다. 칼뽑기 그냥 양손검만 들고 다닐까 하다가 맨손과 양손검 둘 다 하기로 했다. 적 칼뽑기 적의 사거리 안에 들어가면 칼을뽑고 배틀모드로 전환된다. 맨손 공격 맨손으로도 콤보 공격을 때린다. 3타를 보면 방패 모션이 나오는데 20% 확률로 공격을 막게끔 처리했다. 양손검 공격 전과 다를것은 없지만 .. 상대의 애니메이션만 작업을 했다. 그리고 공중에서 맞을때의 애니메이션은 없어서 조금 어색한데 공중에서 맞았을때의 모션이랑 방패에 막혔을때 모션이 없어서 한..

시간 복잡도와 함수 포인터
프로그래밍 공부/자료구조&알고리즘 공부2022. 7. 9. 15:37시간 복잡도와 함수 포인터

알고리즘의 시간 복잡도 프로그램의 실행 속도는 프로그램이 동작하는 하드웨어나 컴파일러 등의 조건에 따라 달라진다. 알고리즘의 성능을 객관적으로 평가하는 기준을 복잡도(Complexity)라고 한다. 복잡도는 2가지 요소를 가지고 있다. 1. 시간 복잡도(Time Complexity) - 실행에 필요한 시간을 평가한 것 2. 공간 복잡도(Space Complexity) - 기억 영역과 파일 공간이 얼마나 필요한가를 평가한 것 앞서 올렸던 두가지의 검색 알고리즘을 예로들어보자. 선형 검색의 시간 복잡도 코드를 보기전에 시간 복잡도의 표기법부터 보고가자. Big-O(빅-오) ⇒ 상한 점근 (최악) Big-Ω(빅-오메가) ⇒ 하한 점근 (최선) Big-θ(빅-세타) ⇒ 그 둘의 평균 (평균) 이 처럼 세가지 표..

이진 검색 알고리즘(Binary Search)
프로그래밍 공부/자료구조&알고리즘 공부2022. 7. 8. 15:13이진 검색 알고리즘(Binary Search)

이진 검색 알고리즘 이진 검색은 요소가 오름차순 또는 내림차순으로 정렬된 배열에서 검색하는 알고리즘 이다. 이 알고리즘을 적용하는 전제 조건은 데이터가 키 값으로 이미 정렬 되어 있어야 한다. 그리고 이진검색은 선형 검색보다 좀 더 빠르게 검색 할 수 있다는 장점이 있다. 이진 검색 알고리즘의 종료 조건 1. 중간 인덱스의 값이 key와 일치하는 경우. 2. 검색 범위가 더 이상 없는 경우 이렇게 길이가 10인 배열에서 46을 찾는다고 해보자. 1. 가장 처음으로는 0과 9의 중간값인 4번 인덱스를 검사한다. 2. 우리가 찾는 숫자는 46이기 때문에 4번 인덱스의 값 32는 키 값 보다 작다. 3. 그러므로 우리는 중간인덱스 앞의 값들은 검사를 안해도 상관 없다고 확신을 할 수 있다.(정렬이 되어있다면)..

image