개발일지/스파르타 코딩클럽 부트캠프
-
[TIL] 13주차 2일 FSM에서 신경써야 할 부분 ( 트러블 슈팅 )개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 9. 18:20
FSM을 사용한다는 건 많은 애니메이션을 사용한다는 것이다.그렇다보면 갖가지 이유로 버그가 발생하곤 한다.나만해도 Has Eixt Time 만으로도 수많은 버그가 발생했었다. 트러블 슈팅 오늘 해결한 문제 1. 플레이어가 떨어지면서 1프레임 IdleState가 되는 현상2. 플레이어가 달리면서 점프하면 중간에 갑자기 멈춰서 뚝 떨어지는 현상3. 플레이어가 제자리에서 점프하면 공중에서 움직여지지 않는 현상 첫 번째의 경우에는public override void Update(){ base.Update(); if(stateMachine.Player.Rigidbody.velocity.y 내가 JumpState일 때 Rigidbody.velocity.y가 0과 같거나 작으면 아이들 상태로 돌아가게초기에..
-
[TIL] 13주차 1일 유니티 2D 플레이어 피격 구현 ( OnTriggerEnter2D, Action )개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 8. 15:07
플레이어 피격 구현 public class HealthSystem : MonoBehaviour{ public event Action OnDamage; [SerializeField] public float CurrentHealth { get; private set; } private void Start() { CurrentHealth = statsHandler.CurrentStat.statsSO.hp; } public bool ChangeHealth(float change) { if (timeSinceLastChange MaxHealth ? MaxHealth : CurrentHealth; // CurrentHealth = CurrentHealth = ..
-
[TIL] 12주차 5일 유니티 스킬 장착, 스킬 슬롯 로직개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 5. 20:35
최종프로젝트를 진행하면서많은 기능을 구현하게 되었는데 지금은A,S,D에 스킬을 장착하고 F로 스킬슬롯 변경을 해서 총 6개의 스킬을 사용할 수 있는 로직을 짜려고한다. using UnityEngine;[CreateAssetMenu (fileName ="PlayerSkill", menuName = "Characters/PlayerSkill")]public class PlayerSkillSO : ScriptableObject{ [field: Range(0f, 25f)] public float CoolTime; [field: Range(0f, 10f)] public float DamageMultipleValue; public float MPCost; public string Animati..
-
[TIL] 12주차 3일 기술면접 대비개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 5. 09:54
using System;class Program{ // 델리게이트 정의 public delegate int MyCallback(int a, int b); // 덧셈 메서드 static int Add(int a, int b) { return a + b; } // 곱셈 메서드 static int Multiply(int a, int b) { return a * b; } static void Main(string[] args) { MyCallback MathOperation; MathOperation = Add; Console.WriteLine(MathOpe..
-
[TIL] 12주차 4일 ( Raycast2D로 연속점프 방지하기 _ 트러블슈팅 )개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 4. 21:03
트러블 슈팅 연속점프를 막기위한 Raycast2D 코드private void FixedUpdate(){ stateMachine.PhysicsUpdate(); if (Rigidbody.velocity.y 0.5f) { isJump = true; } } }}DrawRay 상으로는 분명 바닥에 잘 레이가 닿았는데 기능하지 않았다.if(rayHit.distance 0.5f로 바꿔서 해결했다.distance는 Ray의 원점에서 충돌체 까지의 거리라서원점이 생각보다 위쪽에 잡혔기 때문에원점까지의 거리가 0.5이상일 때로 바꿨고그렇다고 추가 점프가 되지 않게 충돌체가 존재할때만 ditance를 계산한다. 하지만 이러고 ..
-
[TIL] 12주차 2일 기술 면접 대비개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 3. 09:54
기술면접 대비 과제로알고 있는 개념과 지식 확립하기 using System;// 사각형 클래스public class Rectangle{ public double Width { get; set; } public double Height { get; set; } public double CalculateArea() { return Width * Height; }}// 원 클래스public class Circle{ public double Radius { get; set; } public double CalculateArea() { return Math.PI * Radius * Radius; }}// 면적 계산기 클래스public cla..
-
[TIL] 12주차 1일 ( FSM, 유한 상태 머신 )개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 1. 20:44
FSM, 유한 상태 머신이란 무엇일까?유한 상태 기계 ( Finite State Machine, FSM )FSM의 개념FSM은 유한한 갯수의 상태들로 구성된 기계 및 패턴을 말한다.상태와 상태 간의 전환을 기반으로 동작하는 동작 기반 시스템이다.FSM의 구성 요소상태 (State) : 시스템이 취할 수 있는 다양한 상태를 나타낸다.전환 조건 ( Transition Condition ) : 상태 간 전환을 결정하는 조건이다.동작 (Action) : 상태에 따라 수행되는 동작 또는 로직을 나타냅니다.FSM의 동작 원리초기 상태에서 시작하여 입력 또는 조건에 다라 상태 전환을 수행한다.상태 전환은 전환 조건을 충족할 때 발생하며, 전환 조건은 입력, 시간, 조건 등으로 결정된다.상태 전환 시 이전 상태의 종료..
-
[TIL] 11주차 5일 ( 리소스 데이터 관리 )개발일지/스파르타 코딩클럽 부트캠프 2024. 6. 28. 12:12
그냥 기본적으로 큐브를 프리팹으로 만들어서 대충 객체로써 생성한다고 생각해보자 우리는 지금까지 큐브를 만들어서 프리팹으로 뺀 후 캔버스를 만들어서 판넬에 버튼을 만들고직렬화필드로 프리팹을 받아와서 버튼에 온클릭 형식으로 프리팹을 생성했을 것이다. 만약에 여기서 빌드를 하게되면 여기있는 에셋 파일이 다 빌드가 되는 것이 아니다.빌드를 할 때는 씬에 연결되어있는 오브젝트들만 연결되어 빌드가 된다. 직렬화필드로 인스펙터에서 프리팹을 연결해주면버튼을 눌러서 큐브를 생성하지 않아도큐브는 항상 메모리에 올라 가 있게된다. ( 게임의 처음부터 끝 까지 큐브의 메모리가 존재하는 샘 )당연히 최적화에 좋지 않을것이다. 인스펙터에서 프리팹을 넣어주거나 하는 행위는 좋지 않다고 볼 수 있다.오늘은 조금 유연성 있게 데이터를..