본문 바로가기

분류 전체보기331

Unity 유니티 SerializeField 어트리뷰트(attributes) SerializeField는 Unity에서 매우 중요한 어트리뷰트 중 하나입니다. 이 어트리뷰트는 클래스의 private 필드라 할지라도 Unity 인스펙터에서 보이게 하여, 게임 개발자가 Unity 에디터를 통해 값을 조정할 수 있게 해줍니다. SerializeField를 사용하면 스크립트의 캡슐화를 유지하면서도, 유연하게 데이터를 조작할 수 있는 큰 장점이 있습니다. SerializeField 사용 방법SerializeField 어트리뷰트는 비공개(private) 또는 보호된(protected) 멤버 변수에 붙여서 사용합니다. 공개(public) 필드에는 필요하지 않습니다, 왜냐하면 공개 필드는 기본적으로 인스펙터에 노출되기 때문입니다. 예를 들어, 다음과 같이 사용할 수 있습니다.     Seria.. 2024. 4. 18.
c++ 문제 47. while문을 활용, 입력받은 숫자의 첫번째 자리와 마지막 자리 출력 입력받은 숫자의 첫번째 자리와 마지막 자리의 숫자를 출력하는 코드를 작성하세요. 반복문은 while문을 활용.코드는 아래에~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        수박 게임 류의 머지 게임 골든 에그!! 달걀을 합성해보세요!!가볍게 즐길 수 있는 수박 합성 게임류의 머지 게임입니다. 달걀을 합성하여 황금 달걀을 만들어보세요. 여러 모드를 통해 지루하지 않게 즐겨보시길 바랍니다. 노말 모드는 기존의 수박 합성dipirigameworld.tistory.com                            12345678.. 2024. 4. 18.
c++ 25. 포인터?? 포인터의 개념과 예제 코드 처음 c언어를 배우시는 분들에겐 무덤과도 같은 포인터입니다. 많은 분들이 포인터 때문에 포기하는 경우들이 많아서 인데요. 사실 개념과 기본적인 사용 방법은 어렵지 않지만 이해하는데 많은 분들이 어려움을 겪는 녀석입니다. C++에서 포인터는 변수의 메모리 주소를 저장하는 변수입니다. 포인터를 사용하면 메모리의 특정 위치에 직접 접근할 수 있으며, 이를 통해 데이터를 효율적으로 처리하고 관리할 수 있습니다. 포인터는 C++의 중요한 기능 중 하나로, 다양한 고급 기능과 밀접한 관련이 있습니다. 포인터의 개념 포인터는 기본적으로 데이터가 저장된 메모리의 주소를 가리키는 변수입니다. 포인터를 사용하면 변수에 직접 접근하는 대신 변수의 주소를 통해 간접적으로 데이터에 접근할 수 있습니다. 이러한 특성 덕분에 포인.. 2024. 4. 18.
Unity 유니티 RequireComponent 어트리뷰트(Attribute) 특정 컴포넌트를 자동으로 추가하고 싶다면!! RequireComponent는 유니티(Unity)에서 매우 유용한 어트리뷰트(attribute)로, 특정 컴포넌트가 게임 오브젝트에 붙어 있어야 다른 컴포넌트가 제대로 작동할 수 있을 때 사용됩니다. 이를 통해 필수적인 컴포넌트의 자동 추가를 보장하며, 실수로 중요한 컴포넌트를 빼먹는 것을 방지할 수 있습니다. RequireComponent 사용 방법 RequireComponent는 클래스 선언 위에 어트리뷰트로 추가합니다. 사용할 때는 다음과 같이 타입을 인자로 넣어 지정합니다. 빈 오브젝트에 위 스크립트를 추가하면 바로 Rigidbody 컴포넌트가 추가되는 것을 볼 수 있습니다. 스크립트에 의해 추가됨으로 해당 컴포넌트는 제거하려해도 제거되지 않습니다. 만약 Rigidbody가 이미 존재한다면 아무.. 2024. 4. 18.
c# LINQ?? LINQ의 특징과 예제 LINQ (Language Integrated Query)는 C#과 같은 .NET 언어에서 데이터 소스에 대해 쿼리를 수행할 수 있도록 하는 프로그래밍 모델입니다. LINQ는 다양한 데이터 소스 (예: 배열, 컬렉션, XML, 데이터베이스)에 대해 일관된 쿼리 경험을 제공합니다. LINQ를 사용하면 쿼리를 읽기 쉬운 방식으로 작성할 수 있으며, 컴파일 타임 검사와 자동 완성 같은 IDE 기능의 이점을 누릴 수 있습니다. 여기서 쿼리는 데이터를 검색하고 제어하기 위해 데이터베이스나 정보 시스템에 요청하는 명령어라고 보시면 됩니다. 여러 쿼리 언어들이 있는데 LINQ 역시 이런 쿼리 언어들 중 하나입니다. 쿼리를 통해 데이터베이스나 다른 정보 시스템과 상호작용하면서, 필요한 정보를 효율적으로 추출하고 조작할.. 2024. 4. 16.
c++ 24. 구조체 struct C++에서 구조체(structure)는 여러 데이터 항목을 하나의 단위로 묶는데 사용됩니다. 이러한 구조체는 관련 데이터를 그룹화하여 더 효율적인 프로그램 관리를 가능하게 합니다. 구조체는 일반적으로 사용자 정의 데이터 타입으로서, 다양한 데이터 타입의 변수들을 포함할 수 있습니다. 구조체를 사용함으로써의 이점은 아래와 같습니다. 데이터 그룹화: 구조체는 관련된 데이터 항목들을 하나의 단위로 묶어주어, 데이터 관리를 쉽고 효율적으로 만듭니다. 예를 들어, 학생에 관한 정보(이름, 학번, 점수 등)를 구조체로 묶으면 각 학생의 정보를 개별적으로 관리하기보다 더 체계적으로 다룰 수 있습니다. 타입 안전성: 구조체를 사용하면 사용자 정의 데이터 타입을 생성할 수 있으며, 이로 인해 타입 체크가 가능해져 프로그.. 2024. 4. 16.
함수?? 메서드?? 무슨 차이가 있을까?? 프로그래밍 언어를 조금 공부해보신 분들은 한번쯤은 들어보셨을 함수와 메서드. 이 두 용어는 종종 혼용되어 사용되곤 하지는데요. 아마 대부분의 분들은 공부하시면서 둘다 기본적으론 그 기능은 똑같다고 배우셨을것 같네요. 저 역시도 마찬가지였는데. 하지만 이 둘의 개념은 다릅니다. 물론 그 개념에 대해 모른다고 해서 프로그래밍을 하지 못하는 것은 아니나 어떠한 차이점이 있는지에 대해 알아둠으로써 더 효율적인 구조를 작성할 수 있는 기반이 될 수도 있기에 함께 알아보도록 하겠습니다.     함수(Function)함수는 어떤 작업을 수행하는 코드의 묶음입니다. 일반적으로 입력을 받아서 처리하고, 결과를 반환합니다.함수는 독립적으로 존재할 수 있으며, 특정 객체나 클래스에 종속되지 않습니다.예를 들어, 파이썬에서 .. 2024. 4. 15.
Unity 새로워진 길찾기 AI Navigation 2.0의 변경점 Unity에서 제공하는 길찾기 AI Navigation 2.0이 등장했습니다. 기존의 Navigation도 충분히 쓸만했지만 한층 더 업그레이드 되었습니다. 이전 버젼과는 어떠한 점들이 변경되었는지 알아봅시다. 1. 패키지 형태로의 전환 이전 버전: AI 내비게이션 기능이 Unity 에디터에 내장되어 있었습니다. 이는 개발 환경에 따라 제한적인 업데이트와 개선이 이루어졌습니다. AI Navigation 2.0: 이 기능은 이제 패키지 매니저를 통해 설치하고 업데이트할 수 있는 패키지 형태로 변경되었습니다. 이로 인해 사용자가 필요에 따라 최신 기능을 추가하고, 보다 유연하게 관리할 수 있게 되었습니다. 2. 컴포넌트 기반 설정 이전 버전: 내비게이션 설정이 내장된 UI를 통해 조절되며, 사용자의 제어가 .. 2024. 4. 14.
SOLID 객체 지향 프로그래밍 설계 원칙 SOLID는 객체 지향 프로그래밍과 설계에서 중요한 다섯 가지 원칙을 나타내는 약어입니다. 각 글자는 특정한 설계 원칙을 의미하며, 이 원칙들을 통해 더 유지보수가 쉽고, 확장 가능하며, 이해하기 쉬운 코드를 작성할 수 있도록 도와줍니다. 게임 개발에 있어서도 이 원칙들은 코드의 복잡성을 관리하고, 대규모 프로젝트에서 효율성을 높이는 데 기여할 수 있습니다. 예시는 c# 1. Single Responsibility Principle (SRP) 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 합니다. 즉, 클래스를 변경하는 이유는 오직 하나여야 합니다. 예를 들어, 게임 캐릭터의 이동 로직과 그래픽 표현을 분리하여 각각의 클래스로 관리하는 것이 이 원칙에 부합합니다. 예시: 게임 내의 인벤토리 시스템을 .. 2024. 4. 13.
2023 유니티와 언리얼 엔진의 시장 점유율 2023년 Unity와 Unreal Engine은 서로 다른 용도와 커뮤니티를 반영하여 글로벌 시장에서 뚜렷한 점유율을 차지하고 있습니다. Unity는 약 63%의 상당한 시장 점유율을 차지할 정도로 더욱 널리 사용되고 있습니다. 이는 특히 인디 개발자와 모바일 및 2D 프로젝트 작업을 하는 개발자들 사이에서 인기를 입증합니다. 이러한 대규모 사용자 기반은 강력한 커뮤니티와 많은 동료 지원을 의미합니다.​ . Unreal Engine은 약 13%의 작은 시장 점유율을 보유하고 있지만 AAA 게임 및 영화 콘텐츠와 같이 고급 그래픽과 성능을 요구하는 프로젝트에 선호됩니다. Unreal의 강력한 렌더링 기능과 고급 기능은 아티스트와 대규모 스튜디오를 위한 최고의 선택입니다.​. 각 엔진의 강점은 다양한 유형.. 2024. 4. 13.
c++ 문제 46. 2차원 배열의 덧셈 주어진 두 2차원 배열을 각 인덱스의 요소끼리 더하여 그 값을 결과를 볼 수 있는 2차원 배열에 삽입하세요.int arr1[2][3] = { {1, 2, 3}, {4, 5, 6} }; int arr2[2][3] = { {7, 8, 9}, {10, 11, 12} };int result[2][3]; 코드는 아래에~~~~~~~~~~~~~~~~~                                 12345678910111213141516171819202122int main() {     int matrix1[2][3] = { {1, 2, 3}, {4, 5, 6} };    .. 2024. 4. 11.
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.
반응형