분류 전체보기 50

하스스톤 유니티Clone - #3 엔티티 스폰 (3)

Particle System (파티클 시스템) 씬 안에 다수의 작은 2D 이미지를 생성하고 애니메이션하여 유체 엔티티를 시뮬레이션. 움직이는 애니메이션을 만든다고 생각하면 될듯. 사용한 파티클 시스템 속성 Duration : 시스템이 실행되는 지속 시간. Looping : 활성화 하면 시스템이 지속 시간의 끝에 다다르면 다시 시작되어 주기를 계속 반복. Start Delay : 시스템이 활성화된 후 방출을 시작하기까지 기다리는 지연 시간(초). 0초면 바로 시작. Start Lifetime : 파티클의 초기 수명. Gravity Modifier : Physics 창에서 설정된 중력 값을 스케일. 0이면 중력 효과가 해제. Max Particles : 시스템에 한번에 포함될 수 있는 최대 파티클 수. 한도..

하스스톤 유니티Clone - #3 엔티티 스폰 (2)

Inspector의 Normal Vs Debug Normal : 커스텀 에디터가 표시. Debug : 커스텀 에디터 대신 프로퍼티만 표시. 스크립트의 경우 private 변수도 표시 Object를 만들고 설정할 때는 웬만하면 Normal일 때 하도록. 강의에 나오는 메뉴가 Debug일 때는 나타나지 않음 1. 턴 시작 이벤트 추가 TurnManager.cs에 OnTurnStarted Action을 추가. 카드를 분배하고 나면 Action을 Invoke OnTurnStarted는 내 턴이면 myPutCount를 0으로 변경. 내 턴이 시작되면 myPutCount를 0으로 변경해서, 카드를 필드에 놓을 수 있게 함. 2. 턴 종료 버튼 만들기 UI - Button Object를 만들고, Sprite를 추가한..

하스스톤 유니티Clone - #3 엔티티 스폰 (1)

Destroy VS DestroyImmediate 둘다 객체를 파괴하는 기능은 동일. Destroy : Update 프레임이 끝나야 파괴가 됨. 파괴된 객체를 다시 불러도 Update 프레임 내에서라면 null객체가 아님. DestroyImmediate : 메서드가 호출된 즉시 객체가 파괴되고, 다시 부르면 null객체가 되기 때문에 Null참조예외가 발생함. 1. Entity(엔티티) 카드가 필드에 놓여지면 해당 카드는 엔티티로 스폰. 엔티티도 카드와 똑같이 프리팹 게임 오브젝트. 마우스가 인식할 수 있도록 Box Collider2D Component를 추가. 카드와 유사하게 캐릭터, 공격력, 체력, Item을 지정. 해당 엔티티의 종류를 확인하는 bool 변수 (isMine, isBossOrEmpty..

하스스톤 유니티Clone - #2 카드 드래그 (2)

콜라이더 (Collider) 물리 충돌 처리를 위한 오브젝트의 형태 하스스톤 유니티 Clone에서는 Polygon Collider 2D를 사용. 형태를 원하는 수준의 디테일로 다듬을 수 있음. 단, 기본 타입(Box, Circle 등)에 비해 훨씬 프로세스에 부하를 주니 주의. Raycast Physics.Raycast : 직선에 씬을 투영하여 대상에 적중되면 true를 리턴하는 물리 메서드. 대상과의 충돌과 관련된 자세한 정보 (진선과 객체의 교차 정보, 거리, 위치, 객체의 Transform에 대한 참조 등)를 리턴 RaycastAll : RaycastHit 구조체 배열을 이용해 여러 개체에 대한 충돌 정보들을 반환. 결과 값은 순서가 뒤섞임. 1. 마우스를 카드에 갖다 대면 카드 확대 Card Pr..

하스스톤 유니티Clone - #2 카드 드래그 (1)

[Header("이름")] : 이름과 관련있는 필드들을 그룹화. Inspector에서 확인 가능. Action (Using System 필요) C#에서 미리 만들어져 제공하는 반환값이 없는 메서드의 등록을 위한 델리게이트 Action을 이용하면 등록된 메서드를 대리로 호출하며, 기존 메서드를 직접 호출하는 것 처럼 호출 가능. 메서드를 등록하기 위해서는 +=을 이용하고, 제거하려면 -=을 이용. 콜백 메서드를 구현할 때 효과적. 메서드를 캡슐화하여 사용하여 객체 지향적이고 보안이 유지 코루틴(Coroutine) Update 매소드는 매 프레임 마다 호출(60fps면 1초에 60번 호출) 시간을 지연 시켜야 하는 상황이 있다면, 지연 시켜야 하는 시간 * 60번 만큼 Update 메서드가 호출되어야함. 하..

하스스톤 유니티Clone - #1 카드 정렬 (4)

프리팹 (Prefab) 게임 오브젝트. 재사용 가능한 에셋으로 만드는 것. 모든 복사본을 자동으로 동기화 개별 프리팹 인스턴스의 설정을 오버라이드 해서 다른 인스턴스를 만들 수도 있고, 프리팹의 배리언트를 생성하여 오버라이드 집합을 유의미한 프리팹 배리에이션으로 그룹화도 가능. 환경 에셋 - 한 레벨에서 여러번 사용되는 환경 객체. NPC - 게임의 여러 레벨에서 특정 유형의 로봇이 여러 번 나타나는 경우 (오버라이드로 다르게 꾸며줄 수 있음) 발사체 - 해적 대포가 발사할 때 마다 포탄 프리팹을 인스턴스화 하는 경우 메인 캐릭터 - 게임 내 각 레벨(다른 씬)의 시작 지점에 배치 카드 - 하스스톤 유니티에서 사용하는 카드 객체 스프라이트 렌더러 (SpriteRenderer) Sprite를 렌더링하고, ..

하스스톤 유니티Clone - #1 카드 정렬 (3)

두트윈 에셋(DOTWeen) 오브젝트의 애니메이션 혹은 부드러운 값 변경 시 기존의 유니티 내에서 제공하는 애니메이션 기능이나 번거로운 스크립트 작성 대신 함수 몇개로 쉽고 다양한 모션을 줄 수 있는 간편한 API. Card 객체를 이동할 때 사용. 1. CardManager Card 객체를 관리하는 GameObject 보통 2D, 3D에서 각 Object들을 관리하는 ManagerObject들이 따로 존재하는 것으로 알고있다. 주요 기능 Item List에 Item을 추가 (Card) Item List의 Item들을 섞기 Item List에서 Item을 뽑기 뽑은 카드를 정해진 위치와 방향에 맞게 갖다 놓기 (내 카드와 상대편 카드 구분) Item List 생성하고, 섞기. 키패드 1번(내 카드) 또는..

하스스톤 유니티Clone - #1 카드 정렬 (2)

ScriptableObject 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너. 값의 사본이 생성되는 것을 방지하여 프로젝트의 메모리 사용을 줄일 수 있다. SortingGroup Sprite Renderer의 렌더링 순서를 변경하는 컴포넌트. 낮은 순위의 Sorting Layer에 속한 정렬 그룹은 높은 순위의 Sorting Layer에 의해 겹쳐짐. 같은 순위의 Sorting Layer에 속한 두 그룹의 오브젝트가 겹칠 수도 있으므로, Order In Layer 프로퍼티로 일괄된 우선 순위를 갖도록 할 수 있음. 하스스톤 유니티Clone에서는 background < Characters < Card < Texts 의 구조를 가짐.(Sorting Layer) 1. ..