251202
·
📖TIL
using UnityEngine;using UnityEngine.XR.ARFoundation;using UnityEngine.XR.ARFoundation.VisualScripting;public class MultiImgTracker : MonoBehaviour{ [SerializeField] ARTrackedImageManager imgMgr; [SerializeField] GameObject firstImg; [SerializeField] GameObject secondImg; private void OnEnable() { //imgMgr.trackedImagesChanged += OnImageChange; //유니티 5 기준 imgMgr.track..
251201
·
📖TIL
using UnityEngine;using UnityEngine.Android;public class PermissionManager : MonoBehaviour{ private void Start() { Request(Permission.FineLocation); } public void Request(string targetPermission) { // Permission 구조체는 유니티에서 제공해줌 // 입력받은 종류의 권한이 이미 승인이 되어 있다면? if(Permission.HasUserAuthorizedPermission(targetPermission)) { OnSuccess("이미 권..
유니티 개인 프로젝트 기획 초안
·
📖TIL/🔥Projects
제목 : Fantasy Warfare장르 : 액션 로그라이크 / 탄막 슈팅 / 뱀서라이크 / 생존 / 탑다운 2D아트 스타일 : 2D 픽셀플랫폼 : PC ( Windows ) 게임 개요Fantasy Warfare 는 중세 판타지 세계를 배경으로몰려오는 몬스터들 사이에서 자동 공격과 성장 시스템을 활용해가능한 오래 생존하는 탑다운 2D 뱀서라이크 게임이다.플레이어는 이동하며 적의 포위를 피하고경험치를 모아 레벨업을 통해 공격력 , 쿨타임 , 투사체 개수 , 이동 속도를 강화한다. 핵심 재미이동하며 몬스터를 피하기자동 공격으로 적 처치경험치를 획득하고 레벨업스킬 강화 선택몬스터는 시간에 따라 더 많이 , 더 강하게 등장생존 시간 기록 or 보스 처치 도전 조작 방식이동 : WASD ( 또는 방향키 )공..
쉐이더 그래프 & 상태 패턴
·
📖TIL
Shaderlab 상태 패턴 Rivision▼ 밑에 코드를 리팩토링하자using UnityEngine;using UnityEngine.InputSystem;[RequireComponent(typeof(Rigidbody))] // 이거 달면 , 옆 컴포넌트 알아서 달림public class PlayerMovement : MonoBehaviour{ float moveSpeed = 5.0f; float jumpForce = 5.0f; Vector2 moveAmount; bool isJumpPressed; Rigidbody rb; private void Start() { rb = GetComponent(); InputSystem.actions["Mo..
Dijkstra & A-Star
·
📊Algorithm/탐색
다익스트라 ( Dijkstra )가중치가 있는 길 찾기 기본형가중치 ( 거리 , 비용 )가 있는 그래프에서 시작점 → 모든 지점까지의 최단거리를 구하는 알고리즘가장 가까운 길부터 차근차근 확정하는 방식이다. 작동 원리네비게이션이 도로 전체를 훑어서 최단거리 지도를 만드는 과정이라고 보면 된다.출발점에서 가장 가까운 노드부터 확정한다.확정된 노드를 기준으로 주변 노드의 거리를 갱신 ( update ) 한다.다시 "가장 가까운 노드"를 뽑는다.이 과정을 반복하면 결국 모든 지점까지의 최단거리 테이블이 만들어진다.역할 : 하나의 시작점에서 모든 노드까지의 최단 거리를 구하는 알고리즘조건 : 간선 가중치가 음수가 아니어야 한다 ( 0 이상 )탐색 방식 : └ 지금까지 발견한 거리 중에서 제일 짧은 노드..
Dijkstra 다익스트라
·
📊Algorithm/탐색
다익스트라 알고리즘 ( Dijkstra's Algorithm )가중치가 있는 그래프에서 한 정점 ( Vertex ) 에서 모든 정점까지의 최단거리를 각각 구하는 알고리즘이다."다익스트라는 최단 경로를 찾는 알고리즘이다"에츠허르 다익스트라 ( Edsger W. Dijkstra ) 가 고안한 알고리즘이다.다익스트라 알고리즘을 확장시킨 알고리즘이 A* 알고리즘이다.네비게이션에서 최단 거리 길 찾기게임에서 AI 가 "가장 짧은 길"로 이동네트워크 라우팅 경로 계산 핵심 아이디어가장 가까운 노드부터 차근차근 확정해 나아가는 방식 ( Greedy 방식 )시작점의 거리를 0 으로 설정아직 방문하지 않은 노드 중 현재까지 거리값이 가장 작은 노드를 선택이 노드를 통해 갈 수 있는 주변 노드들의 거리값을 갱신 ( Rel..
State Pattern
·
🧊Unity Basic/디자인패턴
상태 패턴 ( State Pattern )상태 패턴은 게임 구현에서 자주 사용되는 디자인 패턴이다.객체가 가진 상태를 관리하고 , 각 상태에 따른 행동을 미리 지정할 수 있다.다른 디자인 패턴과 마찬가지로 상황과 목적에 따라 다른 형태로 구현될 수 있다.상태를 분기문 ( if / switch )로 처리하지 말고각 상태를 '클래스( 객체 )'로 분리해 유연하게 전환할 수 있게 디자인하는 패턴 현업에서는 코드의 재사용성과 유지보수성을 높이기 위해 객체지향적인 설계를 지향하고 있다.같은 프로그램이라도 설계자에 따라 , 혹은 객체지향을 바라보는 관점에 따라 다른 설계 방법이 나오지만 궁극적으로는 프로그램을 더 견고하게 만들고자 하는 목적이 있다. 상태 패턴은 어떠한 객체의 상태를 직관적으로 선언하고 제어하기 위..
251120
·
📖TIL
A-Star Algorithmusing System.Collections.Generic;using UnityEngine;namespace PathFind{ public class Node { public bool IsWall { get; set; } = false; // 진행 불가 판정 public bool IsClosed { get; set; } = false; // 닫힌(연산이 종료된)노드인지 판단 public Node Prev { get; set; } // 이전 노드 public int X { get; set; } // X축 좌표 public int Y { get; se..
251118
·
📖TIL
State Pattern 상태 패턴using UnityEngine;using UnityEngine.InputSystem;public class PlayerController : MonoBehaviour{ [SerializeField] private float _moveSpeed = 5f; [SerializeField] private float _jumpForce = 5f; [SerializeField] private LayerMask _groundLayer; [SerializeField] private Transform _groundChecker; [SerializeField] private float _groundCheckDistance = 0.1f; private Ri..