본문 바로가기

Unity64

c# Unity 유니티 튜토리얼 벽돌깨기(arkanoid) 7. 게임오버 시 재시작 처리 Part_02 지난 포스트에 이어서 계속 진행해보도록 하겠습니다. 9. 상태에 따른 애니메이션이 나올 수 있도록 애니메이터를 설정합니다. 애니메이터 창이 보이지 않는다면 Window 메뉴에서 애니메이터 창을 열어줍니다. 10. 애니메이터에 스테이트를 추가하고 조건에 따라 애니메이션이 플레이 될 수 있도록 트랜지션을 연결합니다.생성한 스테이트의 이름을 변경 후 스테이트를 하나 더 추가하도록 합니다. 생성한 스테이트의 이름을 Break라고 변경합니다.   11. 애니메이터 창의 Parameters에 bool 타입의 Break라는 이름으로 조건을 추가합시다.  12. Normal 상태에서 Break 상태로 변경될 수 있도록 트랜지션을 연결해 주도록 합시다. 13. 연결된 트랜지션을 선택하여 아래와 같이 설정합니다. 특히 C.. 2024. 5. 7.
c# Unity 유니티 튜토리얼 벽돌깨기(arkanoid) 7. 게임오버 시 재시작 처리 Part_01 https://drive.google.com/file/d/1Yyp1UJIvSO5tsx1XdMIi8nqgkN3Ig1zN/view?usp=sharing BreakPaddle.png drive.google.com 이제 마지막으로 공이 화면 밖으로 사라졌을 때 게임이 재시작되는 부분을 처리해보도록 하겠습니다. 1. 화면 아래쪽에 공이 나갔다는 걸 알 수 있도록 게임오브젝트를 하나 생성하고 충돌 박스를 추가하도록 합시다.  2. 아래와 같이 Box Collider 2D를 설정합니다. 3.Out 이라는 태그를 하나 추가합니다. South 오브젝트의 태그를 추가한 Out으로 변경합니다. 4.  BallController 스크립트 내에서 충돌에 따른 처리를 하도록 합니다.  우선 공이 밖으로 나갔을 때 패들의 중앙 위.. 2024. 5. 7.
Unity 유니티 초보들을 위한 기본적인 2D 케릭터 움직임 - 이동 Rigid body2D MovePosition 유니티에서 케릭터 이동하는 방법엔 여러가지가 있습니다. 이번 포스트에선 RigidBody2D를 활용한 케릭터의 이동을 알아보도록 하겠습니다. 1. 새로운 오브젝트를 하나 생성합니다. 하이어라키 창의 +버튼을 누르거나 하이어라키 창에서 오른쪽 마우스를 눌러 Create Empty. 2. 생성한 오브젝트를 선택하고 인스펙터 창에서 이름을 변경하고 포지션을 초기화 합니다.   3. 케릭터 이미지를 오브젝트에 추가합니다. 우선 생성한 오브젝트를 선택 후 인스펙터 창에서 Add Component를 누름. 그후 2D 이미지를 그려줄 Sprite Renderer 컴포넌트를 추가합니다. 4. 케릭터로 쓰고자 하는 이미지를 Sprite Renderer 컴포넌트의 Sprite 변수에 연결합니다. 해당 부분에 직접 파일을 .. 2024. 5. 2.
Unity 유니티 UI Button 버튼 OnClick 함수 등록 방법 유니티에서 UI 버튼에 함수를 등록하는 방법은 여러 가지가 있습니다. 주로 사용되는 방법은 스크립트를 이용하는 것이며, 인스펙터를 사용하여 직접 할당하는 방법도 있습니다. 인스펙터를 사용한 방법이 방법은 유니티 에디터의 인스펙터 패널을 사용하여 직접 버튼의 클릭 이벤트에 함수를 연결하는 방법입니다. 간단한 단계로 UI 버튼에 함수를 등록할 수 있습니다. 1. 우선 버튼을 하나 생성합니다. 2. 스크립트를 하나 생성하여 호출할 함수를 작성합니다.  3. 생성한 스크립트를 하이어라키에 오브젝트 중 하나에 추가합니다. 4. 버튼 오브젝트를 선택 후 OnClick에 함수를 등록할 수 있도록 + 를 누릅니다. 5. 여기서 중요한 것은 스크립트 파일을 연결하는 것이 아닌 스크립트를 추가한 오브젝트를 버튼 해당 부분.. 2024. 4. 24.
c# Unity 유니티 튜토리얼 벽돌깨기(arkanoid) 6. 벽돌과 공 충돌 처리 1. BallController 컴포넌트 스크립트에 아래의 변수들을 추가합니다.2. 공과 충돌 시 블럭이 삭제될 함수를 작성합니다.  3. 공과 블럭 충돌 시의 위치를 토대로 공의 방향을 변경해 줄 코드를 추가해줍니다. 코드의 양이 많으니 잘 확인하시길 바랍니다.        4. 짧은 시간 중복 충돌을 막아줄 코루틴 함수를 작성합니다.   5. 실행하여 블럭 충돌에 따른 공의 움직임을 확인합니다.  https://play.google.com/store/apps/details?id=com.goldenegg 골든 에그 - Google Play 앱수박 게임류의 머지 게임입니다.play.google.com 2024. 4. 23.
1인 게임 개발 시 가장 중요한 것?? 1인 게임 개발을 시작했다는 건 만들고 싶은 게임이 있어서이겠죠. 저 역시 혼자 게임을 만들며 부푼 꿈에 이것저것 시도들을 계속해서 해보기도 했고 1~2년의 시간을 들여 게임을 만들어 보기도 했습니다. 만들다보니 이상은 큰데 실력과 여러 여건들에 만들다가 포기한 게임들도 여럿 그렇게 몇 개월을 허송세월 보내기도 했습니다. 그래서 개인적으로 생각하기에 특히 1인 개발을 한다면 주의해야 할 것이 바로!!아주 작은 프로젝트로 시작하는 것!! 이라는 생각이 들었습니다. 특히 게임을 통해 생계를 해결해야 한다면 더더욱 작은 프로젝트부터 시작해야합니다. 저 역시 수 많은 대작 게임들을 좋아하고 소울류의 게임을 좋아하다보니 그러한 게임을 만들고 싶다는 생각에 항상 사로잡혀 있습니다. 하지만 이러한 게임은 투자를 받거.. 2024. 4. 19.
Unity 유니티 SerializeField 어트리뷰트(attributes) SerializeField는 Unity에서 매우 중요한 어트리뷰트 중 하나입니다. 이 어트리뷰트는 클래스의 private 필드라 할지라도 Unity 인스펙터에서 보이게 하여, 게임 개발자가 Unity 에디터를 통해 값을 조정할 수 있게 해줍니다. SerializeField를 사용하면 스크립트의 캡슐화를 유지하면서도, 유연하게 데이터를 조작할 수 있는 큰 장점이 있습니다. SerializeField 사용 방법SerializeField 어트리뷰트는 비공개(private) 또는 보호된(protected) 멤버 변수에 붙여서 사용합니다. 공개(public) 필드에는 필요하지 않습니다, 왜냐하면 공개 필드는 기본적으로 인스펙터에 노출되기 때문입니다. 예를 들어, 다음과 같이 사용할 수 있습니다.     Seria.. 2024. 4. 18.
Unity 유니티 RequireComponent 어트리뷰트(Attribute) 특정 컴포넌트를 자동으로 추가하고 싶다면!! RequireComponent는 유니티(Unity)에서 매우 유용한 어트리뷰트(attribute)로, 특정 컴포넌트가 게임 오브젝트에 붙어 있어야 다른 컴포넌트가 제대로 작동할 수 있을 때 사용됩니다. 이를 통해 필수적인 컴포넌트의 자동 추가를 보장하며, 실수로 중요한 컴포넌트를 빼먹는 것을 방지할 수 있습니다. RequireComponent 사용 방법 RequireComponent는 클래스 선언 위에 어트리뷰트로 추가합니다. 사용할 때는 다음과 같이 타입을 인자로 넣어 지정합니다. 빈 오브젝트에 위 스크립트를 추가하면 바로 Rigidbody 컴포넌트가 추가되는 것을 볼 수 있습니다. 스크립트에 의해 추가됨으로 해당 컴포넌트는 제거하려해도 제거되지 않습니다. 만약 Rigidbody가 이미 존재한다면 아무.. 2024. 4. 18.
Unity 새로워진 길찾기 AI Navigation 2.0의 변경점 Unity에서 제공하는 길찾기 AI Navigation 2.0이 등장했습니다. 기존의 Navigation도 충분히 쓸만했지만 한층 더 업그레이드 되었습니다. 이전 버젼과는 어떠한 점들이 변경되었는지 알아봅시다. 1. 패키지 형태로의 전환 이전 버전: AI 내비게이션 기능이 Unity 에디터에 내장되어 있었습니다. 이는 개발 환경에 따라 제한적인 업데이트와 개선이 이루어졌습니다. AI Navigation 2.0: 이 기능은 이제 패키지 매니저를 통해 설치하고 업데이트할 수 있는 패키지 형태로 변경되었습니다. 이로 인해 사용자가 필요에 따라 최신 기능을 추가하고, 보다 유연하게 관리할 수 있게 되었습니다. 2. 컴포넌트 기반 설정 이전 버전: 내비게이션 설정이 내장된 UI를 통해 조절되며, 사용자의 제어가 .. 2024. 4. 14.
2023 유니티와 언리얼 엔진의 시장 점유율 2023년 Unity와 Unreal Engine은 서로 다른 용도와 커뮤니티를 반영하여 글로벌 시장에서 뚜렷한 점유율을 차지하고 있습니다. Unity는 약 63%의 상당한 시장 점유율을 차지할 정도로 더욱 널리 사용되고 있습니다. 이는 특히 인디 개발자와 모바일 및 2D 프로젝트 작업을 하는 개발자들 사이에서 인기를 입증합니다. 이러한 대규모 사용자 기반은 강력한 커뮤니티와 많은 동료 지원을 의미합니다.​ . Unreal Engine은 약 13%의 작은 시장 점유율을 보유하고 있지만 AAA 게임 및 영화 콘텐츠와 같이 고급 그래픽과 성능을 요구하는 프로젝트에 선호됩니다. Unreal의 강력한 렌더링 기능과 고급 기능은 아티스트와 대규모 스튜디오를 위한 최고의 선택입니다.​. 각 엔진의 강점은 다양한 유형.. 2024. 4. 13.
c# Unity 유니티 튜토리얼 벽돌깨기(arkanoid) 5. 벽돌 충돌 시 벽돌 삭제 1. 벽돌과 공의 충돌 처리를 위해 벽돌 프리팹 오브젝트에 BlockComponent를 생성하여 추가합니다. 2. 충돌을 위한 BoxCollider 2D 컴포넌트를 추가합니다.   3. 아래와 같이 스크립트를 작성합니다.  https://play.google.com/store/apps/details?id=com.goldenegg 골든 에그 - Google Play 앱수박 게임류의 머지 게임입니다.play.google.com   4. 공과 충돌 시 BlockComponent의 TakeDamage함수를 BallController 스크립트 내에서 호출하여 삭제가 잘 되는지 확인합니다. 5. 벽돌이 잘 삭제되는지 확인합니다. 다음 튜토리얼에서 벽돌의 충돌에 따른 공의 설정을 해보도록 하겠습니다~ 2024. 4. 10.
Unity 유니티 c# 웹 사이트 열기 Application.OpenURL 유니티를 통해 앱이나 게임내에서 외부의 웹 사이트를 열어야 할 경우가 있습니다. 이러한 경우 쉽게 사용할 수 있는 메서드가 있는데 바로 Application.OpenURL입니다. 위 예제처럼 Application.OpenURL 메서드의 매개 변수로 열고자 하는 웹 사이트 주소를 대입해서 호출하게되면 해당 웹사이트가 열리게 됩니다. OpenURL 메서드를 버튼에 등록하여 호출해보도록 합시다. 우선 매개변수로 주소를 받을 수 있도록 메서드를 수정합니다. 유니티 에디터에서 버튼을 하나 만들어 해당 스크립트를 추가해줍니다. 버튼 컴포넌트의 On Click에 버튼 오브젝트를 연결하여 호출할 메서드인 OpenURL 메서드를 등록하고 매개변수의 값인 웹사이트 주소를 입력합니다. 버튼을 눌러서 해당 웹사이트가 잘 열리.. 2024. 4. 2.
반응형