Humility

아무리 노력해도 최고가 되지 못할 수 있다⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀그럼에도 노력하는자가 가장 겸손한 것 아닌가

공부하는 블로그
반응형

unity 47

[Unity] 유니티 C#) 자료구조 스택(Stack), 큐(Queue)

Stack스택의 구조 스택은 가장 나중에 들어간 데이터가 가장 먼저 나오는 LIFO(Last In First Out) 선입선출 구조이다다. 실생활의 예로는 책을 쌓아둔 더미를 생각하면 된다 맨 위에 있는 책(마지막에 올려둔 책)을 가장 먼저 집을 수 있는 것 처럼스택 선언 방법접근지정자 Stack타입> 변수명 = new Stack타입>(); private Stack books = new Stack();스택의 주요 동작Push: 새로운 데이터를 스택 맨 위에 추가Pop: 스택 맨 위의 데이터를 제거하고 반환Peek: 맨 위 데이터를 제거하지 않고 확인만 함 Count: 스택에 있는 데이터의 개수 확인Contains: 스택에 특정 데이터가 있는지 확인Clear: 스택의 모든 데이터를 제거스택의 특징데이터는 ..

유니티/문법 2024.11.02

[Unity] 유니티 C#) 자료구조 딕셔너리(Dictionary)

딕셔너리는 왜 사용할까?딕셔너리는 많은 데이터안에서 특정한 한 데이터를 찾을때 빛을 발한다.예를 들어, RPG게임에서 아이템을 찾는다고 가정해보자List itemList = new List() { "A", "B", "C" };string findInList = itemList.Find(x => x == "B"); // 전체 순회 필요예시에는 A,B,C 3가지만 들어있지만 RPG게임에는 수천, 수만개의 아이템이 있을 것이다.그 중 하나의 아이템을 찾는다고 하면, 순차적으로 0번부터 탐색을 시작할 것이다.이는 매우 비효율 적이다. 이때 딕셔너리로 만들면 어떨까?Dictionary fastLookup = new Dictionary();fastLookup.Add(1, "A");fastLookup.Add(2, "..

유니티/문법 2024.10.28

[Unity] 유니티 C#) 자료구조 배열(Array),리스트(List)

배열과 리스트를 왜 사용할까?// 1.public class ScoreTest1 : MonoBehaviour{ // 학생 점수를 각각 변수로 만든다면... int score = 85; Debug.Log(score)}// 2.public class ScoreTest2 : MonoBehaviour{ int score1 = 85; int score2 = 85; int score3 = 85; int score4 = 85; int score5 = 85; // .... score가 100개가 넘어간다고 생각해보자... Debug.Log(score1); Debug.Log(score2); Debug.Log(score3); Debug.L..

유니티/문법 2024.10.28

[Unity] 유니티 C#) FPS 주무기를 어떻게 구현할까? ( 저격총 )

일반적인 저격총 발사방법은 사실 돌격소총과 크게 다를바가 없다.단지, 총의 발사주기나 반동 등 몇가지 설정해놓은 변수값만 바꿔주면 되기 때문이다.그럼 어떤 특징이 있는지 생각해보자. 저격총의 특징1. 줌 저격총은 배율기를 사용해 먼 거리에 있는 적을 조준하고 사격하는데 의의가 있다. 때문에, 줌 기능을 구현해야한다. 2. 관통저격게임으로 유명한 스나이퍼엘리트 시리즈를 해보면 적 2명이 1자로 서있을 때, 총을 쏴 앞에 서있는 적을 맞추면 총알이 관통해 뒤에 있는 적까지 처치할 수 있다. 저격총은 다른 총에 비해 무겁고, 탄약 또한 강력하기 때문에 이러한 설정은 괜찮다고 생각한다.( 아쉽게도 미디어 자료는 찾을 수 없어 삽입할 수 없었다...)     1. 변수 설정public class Sniper :..

[Unity] 유니티 C#) FPS 주무기를 어떻게 구현할까? ( 샷건 )

이번엔 샷건을 구현해보자.샷건은 다른 총들과 달리 생각해야할 점이 2가지가 있다.1번째: 총 발사시, 쉘이 퍼져 나간다.보통의 총들은 발사시에 한발씩 나가지만 샷건은 한번 발사시에 여러개의 쉘로 퍼져서 나간다 2번째: 장전 시 한발씩 장전이 된다.보통의 총들은 장전시에 탄창을 교환하는 방식으로 한번에 장전되지만 샷건은 한발씩 장전되어야 한다 그럼 이제 샷건을 구현해보자. 1. 변수 설정public class ShotGun : MainWeapon{ private bool canReset = true; // 처음에만 총알 넣어주기 위해 private float nextFireTime; // 다음 발사 주기 public TextMeshProUGUI ammoTxt; // 탄약 UI 표시 ..

[Unity] 유니티 C#) FPS 주무기를 어떻게 구현할까? ( 돌격소총 )

이제 본격적으로 주무기를 만들어보자 1. 변수 할당public class Rifle : MainWeapon{ private bool canReset = true; // 처음에만 총알 넣어주기 위해 private float nextFireTime; // 다음 발사 주기 protected override void Awake() { base.Awake(); maxLoadedAmmo = 30; // 장전될 수 있는 탄약 initializeAmmo = 180; // 총기 최대 탄약 damage = 27; // 데미지 bulletRange = 50f; // 총알 발사 거리 fireRate = 0.06f; // 총알 발사 주기 recoilX = 0.2f; /..

[Unity] 유니티 C#) FPS 주무기를 어떻게 구현할까? ( 주무기 클래스 )

FPS 게임에는 다양한 총기들이 있다대표적으로 돌격소총, 산탄총, 저격총 이 3가지가 떠올랐다. 그럼 어떻게 설계할지 생각해보자 1. 구조 설계주무기들의 부모가 되는 클래스각 주무기들의 클래스실질적으로 총을 발사하는 클래스2. 필요한 변수탄약최대 장탄수, 장전 탄약, 남은 탄약, 데미지데미지, 총알 사거리, 발사 주기반동좌우반동, 수직반동, 반동 회복속도재장전재장전 시간, 장전중 확인정조준정조준 속도, 줌 정도탄퍼짐탄 퍼짐 정도 3. 필요한 로직슈팅 : 마우스 왼쪽 키를 눌렀을때, 총알 발사장전 : 장전되어있는 총알이 없거나 R키를 눌렀을 때발사 : 발사 방법정조준 : 마우스 오른쪽 키를 눌렀을 때 정조준주무기를 만드려고 생각 했을 때, 이정도 생각이 들었다.개발을 진행하면서 빼야할 부분은 빼고 추가할 ..

반응형