unity 16

Unity 3D 사다리 구현

사다리 시스템 작동 방식플레이어가 사다리 근처로 가면 OnTriggerEnter()가 실행되어 사다리 사용 상태로 변경플레이어가 사다리를 사용중에는 오르고 내려갈 수 있음플레이어가 사다리에서 벗어나면 OnTriggerExit()가 실행되어 다시 중력 활성화코드 구현 - 사다리 감지 및 상태 변경(Landder.cs)using System.Collections;using System.Collections.Generic;using UnityEngine;public class Landder : MonoBehaviour{ bool useLandder = false; // 사다리 사용 상태 private void Update() { if (useLandder) { ..

Unity 버프 UI 및 타이머 시스템 구현하기

게임에서 버프는 플레이어에게 엄청난 효과를 주는 기능 중 하나이다. 오늘은 아이템을 사용했을 때 버프 효과와 타이머 시스템을 구현 해보자버프 시스템 작동 방식버프 아이템을 획득 하거나 사용하면 StartBuff() 함수 실행버프 아이콘이 UI에 표시됨기존에 같은 버프가 있으면 타이머를 초기화새로운 버프라면 빈 슬롯에 등록버프 지속 시간 동안 BuffTimer() 코루틴 실행게이지 바 (fillAmout)가 줄어듦버프 만료 시 EndBuff() 실행적용했던 효과 제거UI에서 아이콘을 삭제하고 슬롯을 비움코드 구현 - 버프 UI우선 UI에서 버프 아이콘을 표시하는 Image배열을 만들어 주자public Image[] buffUI;private Coroutine[] activeBuffCoroutines;pri..

Unity 3D 점프 발사대 구현

게임에서 점프대와 발사대를 사용하면 플레이어가 가지 못하는 구역을 이동할 수 있는 수단이다. 오늘은 점프 발사대를 구현 해보자우선 점프 발사대를 구현 하기 위해 핵심 기능인 AddForce(Vector3 force, ForceMode mode)를 사용할 것 이다.AddForce(Vecter3 force, ForceMode mode)란?Unity에서 Rigidbody를 가진 객체에 물리적인 힘을 주어 오브젝트를 이동시킬 수 있는 기능이다._rigidbody.AddForce(Vector3 force, ForceMode mode);매개변수 설명Vecter3 force : 힘을 가할 방향과 크기ForceMode mode : 힘을 가하는 방식 (4가지의 방식)ForceMode.Force : 지속적인 힘을 가함 (..

Unity AI Navigation

AI Naviagtion이란우선 사전적 의미로는 AI( Artificial Intelligence )의 "인공지능"과 Naviagtion의 명사인 "배나 다른 차량의) 항해[운항/조종](술)"이 합쳐진 단어로 인공지능이 스스로 조종하여 이동한다는 의미를 가지고 있다. 주로 게임에서 캐릭터나 NPC가 스스로 이동하도록  사용하는 기능입니다. AI Naviagtion 주요 기능Navigation Mesh(네비게이션 메쉬)AI가 이동할 수 있는 역영을 나타내는 매쉬이다.아래 이미지와 같이 Layer처럼 이동할 수 있는 영역과 없는 영역을 정의하고, 이를 기반으로 경로를 계산  Pathfinding(경로 탐색)AI가 목표 위치까지 이동할 때 최적의 경로를 찾는 알고리즘이다.주로 A* 알고리즘이 사용되며, 지정된..

Unity Input System (Send Messges / Invok Unity Events 차이점)

Unity에서 플레이어를 움직이게 하는 방식은 여러가지가 있는데 그 중 하나의 방법이 Input System을 활용하여 움직이는 것이다. Input System은 사용자가 기기, 터치, 제스처를 사용하여 게임이나 앱을 제어할 수 있도록 도와주는 패키지이다. Input System에서는 입력 이벤트의 처리 방법이 4가지가 있다. 방식설명Send Messages특정 함수"OnJump()" 등를 자동으로 호출Broadcast Messages부모-자식 관계의 모든 오브젝트에서 함수 호출Invoke Unity Events"UnityEvent"를 이용한 이벤트 방식으로 호출Invoke C# EventsC# 델리게이트 이벤트를 호출 이중에 가장 많이 사용하는 "Send Messages",  "Invoke Unity ..

Unity 2D 팀 프로젝트 - 마지막 날

Untiy 2D 팀 프로젝트 궁수의 전설 래퍼런스 작품 만들기 -  마지막 날팀 프로젝트 후기오늘 팀프로젝트가 끝났다. 참으로 길다면 길었고 짧았다면 너무나 짧았던 시간이였다. 꼭 프로젝트가 끝나니 고쳐야 할 부분이 왜 이렇게 잘 보이는지..... 다른 팀들은 어찌 그렇게 잘만들 수 있는건지...... 나도 잘만들고 싶다 대략 5일동안 팀 프로젝트를 하고 나니 느낀점은 모든 팀의 기능은 비슷한데 누가 디자인을 잘하나 구조를 잘 구성하나 그 차이였던갔다. 다음 프로젝트 때는 좀더 탄탄하게 만들고 게임이라고 부를 수 있는 게임을 만드는 것이 목표 이다 작품 시연 영상

Unity 2D 팀 프로젝트 - 4

Untiy 2D 팀 프로젝트 궁수의 전설 래퍼런스 작품 만들기 -  4 오늘로 팀 프로젝트 5일차가 진행 되었다. 스킬 구현이 어느 정도 다 끝나 사운드 작업을 추가적으로 하였다. 먼저 소리를 내줄 SoundSource를 프리팹으로 만들어 주어 다른 소리와 중복으로 발생할 수 있게 만들어 주자using UnityEngine;public class SoundSource : MonoBehaviour{ private AudioSource _audioSource; public void Play(AudioClip clip, float soundEffectVolume, float soundEffectPitchVariance) { if (_audioSource == null) ..

Unity 2D 팀 프로젝트 - 3

Untiy 2D 팀 프로젝트 궁수의 전설 래퍼런스 작품 만들기 -  3오늘로 팀 프로젝트가 4일차가 진행 되었다. 오늘은 액티브 스킬로 대쉬 기능을 한번 추가해보았다.  우선 대쉬에 필요한 변수들을 먼저 선언해 주[Header("Dash")]private Rigidbody2D rb;private bool isDashing;//대쉬 거리는 playerStat에 있음private float dashDuration = 0.2f; // 돌진 지속 시간private float dashCooldownTime = 3f; // 대시 기본 쿨타임private float dashCooldownTimer = 0f; // 쿨타임 타이머public bool isDashReady = true; // 쿨타임이 끝났는지 체크 코루..

카테고리 없음 2025.02.26

Unity 2D 팀 프로젝트 - 2

Untiy 2D 팀 프로젝트 궁수의 전설 래퍼런스 작품 만들기 -  2오늘로 팀 프로젝트가 3일차가 진행이 되었다.  오늘 오전에 화살이 벽에 닿았을 때 튕기는 기능을 구현을 하려고 했지만 알고리즘을 짜는 것에 생각보다 시간이 많이 흘러 가버렸다. 알고리즘을 짤때 여러 가지 자료를 찾았는데 처음 찾은 내용은 출발지점의 각도와 벽에 부딪혔을때 각도가 같다는 사실을 이용하여 atan2를 사용해 출발 지점 각도를 구하고 180도에 구한 각도를 빼서 반사각을 구하는 방식이 있었다. 두번째 방법으로는 유니티 자체의 기능인 Vector2.Reflect를 사용하여 백터값을 사용하여 반사기능을 구현하는 방식이다.. 그래서 각도를 구하는 방식보다 백터를 이용하는 방식이 좀더 코딩하는데 좋을 것 같아 두번째 방식으로 화살..

Unity 2D 팀 프로젝트 - 1

Untiy 2D 팀 프로젝트 궁수의 전설 래퍼런스 작품 만들기 오늘로 팀프로젝트 2일차 시차 1일차때는 조원들과 프로젝트 계획과 약속을 정하고 끝이 나서 작품 제작은 2일차 부터 시작이 되었다. 이 프로젝트에서 내가 담당한 파트모든 투사체 관리스킬 담당이 두가지를 메인으로 담당을 하게 되었다. 그래서 오늘 궁수의 전설에서 맵이 클리어 되었을 때 스킬을 선택하는 기능을 구연해 보았다. 먼저 스킬의 종류를 플레이어 스탯효과, 투사체 스탯효과, 액티브 스킬, 패시브 스킬로 나누어 작성하였다.스킬 리스트를 만들기 위해 ScriptableObject를 사용하여 Skill Data를 만들어 주었다.using System.Collections;using System.Collections.Generic;using Un..