분류 전체보기 49

[Unity]Physics 와 Layer

충돌 처리를 하게 된다면 Physics를 많이 쓰게 됩니다. 크게 나누게 된다면 Raycast 와 Overlap 계열, Cast 계열이 있습니다. Raycast 한 점에서 직선 방향으로 빛을 쏴 지정된 거리까지 충돌하는 객체가 있는지 체크하는 용도로 쓰고 있습니다. 투사체가 어디에 충돌했는지, 혹은 바닥 높이가 몇인지 등등등 다방면으로 쓰이고 있습니다. Overlap 계열 Physics.OverlapSphere를 보면 위와 같이 표시 됩니다. Overlap 에서 가장 큰 특징은 충돌한 Collider를 반환 하게 됩니다. 정확히 이야기 하자면 내가 누구와 충돌했는지를 체크하게 됩니다. Alloc버전과 NonAlloc버전이 있는데 Alloc버전은 Collider배열을 반환합니다. NonAlloc버전은 Co..

Unity Engine 2022.11.01

Flutter - 이미지 선택

앱을 만들다 보면 갤러리(사진첩)에서 이미지를 선택해야 할 일이 생깁니다. 이 경우를 알아보겠습니다. 우선 필요한 패키지는 image_picker 입니다. https://pub.dev/packages/image_picker image_picker | Flutter Package Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera. pub.dev 선택하는 방법 자체는 아주 쉽고 간단합니다. static Future PickImage() async { return await ImagePicker().pickImage(source: ImageSource.g..

Flutter 2022.10.11

Flutter - 파파고 번역 + 비동기 처리

파파고 번역 Flutter 에서 파파고 번역을 사용하는 방법 입니다. https://www.ncloud.com/product/aiService/papagoTranslation NAVER CLOUD PLATFORM cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification www.ncloud.com 일단 파파고 API 등록을 합니다. 이것은 다른곳에도 많이 알려져 있기 때문에 간략히 넘어가겠습니다. Flutter에서는 기본적으로 http 에관한것이 없기 때문에 패키지 추가 해야 합니다. pubspec.yaml을 열고 http를 추가 해 줍니다. Flutte..

Flutter 2022.07.28

Flutter - showModalBottomSheet

화면 하단부에 임시로 잠시 뜨는 PC에서 팝업같은 처리를 하는 ModalBottomSheet를 알아 보겠습니다. flutter 기본 앱을 수정하여 floatingActionButton을 누르면 ModalBottomSheet가 뜨도록 하겠습니다. floatingActionButton은 화면 중앙 하단에 있는 +버튼 입니다. 이 버튼을 누르면 ModalBottomSheet가 뜨고 거기서 텍스트를 입력받으면 기본 화면의 "Sample Text"자리에 뜨도록 수정되는 간단한 구조 입니다. 일단 ModalBottomSheet에 뜰 위젯을 보겠습니다. import 'package:flutter/material.dart'; class BottomDialog extends StatefulWidget { final Fu..

기타 2022.07.14

Flutter - Asset 사용(Font, Image)

Flutter에서 폰트나 이미지 등을 사용하는 방법을 확인 해 보겠습니다. 일단 적당한 폰트를 받아서 assets/fonts 폴더에 넣어줍니다. 전 무료폰트인 구글의 NotoSerif를 받아서 넣었습니다. 기본폰트가 고딕계열이라 Serif계열을 쓰면 폰트가 바뀐것을 쉽게 알 수 있습니다. 이제 새로운 Flutter 프로젝트를 생성합니다. 여기서 화면 중앙에 문구표시되는 부분이 있는데 약간만 수정합니다. children: [ Container( width: 300, child: const Text( 'You have pushed the button this many times:', style: TextStyle( fontSize: 30, ), ), ), Text( '$_counter', style: The..

Flutter 2022.07.14

Behavior Tree - AI 이동 디테일

AI 이동을 좀 더 쓸만하도록 수정하겠습니다. AI 가 이동할떄 한번에 끝까지 이동하며 도중에 다른 판단을 하지 않게되면 매우 어색하기 때문에 중간중간 갈 위치를 정해두고 매번 다시 평가하는 구조로 만들었습니다. NodeCanvas의 MoveToward의 경우 A포인트에서 B포인트까지 한번에 일정속도로 이동하게 되는데 이떄 시간이 3초 걸린다면 3초동안 다른 평가를 하지 않기 때문에 이상하게 됩니다. 이럴경우 0.5초 로 이동할 수 있는 거리만큼 거리를 계산하고 그만큼만 이동하고 다시 평가를 진행합니다. 우선 기존에 진행 하였던 것들에 이어서 진행하지만 많은 변경점이 있어서 전체적으로 다시 적었습니다. CubeController.cs public class CubeController : MonoBehav..

Unity Engine 2022.07.10

Behavior Tree - Custom Action

기존에 이어서 새로운 태스크를 제작해 봅니다. 하고자 하는 목표는 다음과 같습니다. 1. 객체를 감지한다. 2. 감지된 객체가 있다면 객체까지 이동한다. 기존에 Cube Controller 에 있던 Target객체를 할당 해제 합니다. 또한 Cylinder의 레이어를 변경 해 줍니다. Add Layer로 레이어 추가 해 주고, Target 이라는 레이어를 추가 해 줍니다. 이제 선택된 레이어를 변경해서 올바르게 할당 되었는지 확인합니다. 새로운 Task 를 만들어 줍니다. Node Canvas를 설치하였다면 위와 같은 메뉴가 추가 되었습니다. 여기서 New Task를 선택 해 줍니다. Task Name, Namespace에 적당한 이름을 넣고 CREATE 버튼을 눌러 줍니다. 올바르게 생성 되었다면 On..

Unity Engine 2022.07.07

Behavior Tree - Node Canvas (2)

Node Canvas를 통해 기본적인 동작을 테스트 해보겠습니다. 3D Object2개를 만들고 하나를 다른 쪽으로 움직이도록 해보겠습니다. 화면에 Cube 와 Cylinder를 만들어 줍니다. 그리고 Cube에 스크립트 하나를 붙여줍니다. public class CubeController : MonoBehaviour { public GameObject Target; } 아주 단순하게 GameObject를 변수로 하나 설정해 두는 것입니다. 이것을 Cube에 할당 해 주고 Target에 Cylinder를 할당 해 줍니다. 이제 준비가 끝났고 Node Canvas로 Behavior Tree를 제작해 줍니다. Behaviour Tree Owner를 추가해 줍니다. 약간 다른 스펠링에 주의 하세요. 이제 2가..

Unity Engine 2022.07.02