스파르타코딩클럽
-
[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] 10주차 4일 ( 옵저버패턴 , 캐릭터 스텟 강화 )개발일지/스파르타 코딩클럽 부트캠프 2024. 6. 20. 21:01
오늘은 관찰자 패턴에 대해서 공부한 부분을 간단하게 볼건데 그 전에 자료초반부에도 써져있던 부분을 정리해봤다. 모든 문제에 정답이란 없으며 확실치 않을 때는 Kiss(Keep it simple, stupid) 단순하게 유지하기, 수고를 더 들일 가치가 있을지 미리 생각하기 필요할때만 사용하기관찰자 패턴(Observer pattern)관찰자 패턴은 일대다 종속관계를 사용해 오브젝트가 통신하되 낮은 결합도를 유지하도록 할 수 있다. 한 오브젝트의 상태가 변경되면 종속된 모든 오브젝트가 자동으로 알림을 받는다. 게임플레이 과정에서 발생하는 거의 모든 상황에 관찰자 패턴을 적용할 수 있다. 관찰자 패턴의 장점결합도가 낮고 확장성이 높음런타임에서 옵저버 추가 제거가 용이유니티에선 구현이 용이단점시스템의 복잡성이 ..
-
[TIL] 10주차 2일 Delegate개발일지/스파르타 코딩클럽 부트캠프 2024. 6. 18. 20:31
오늘은 특강에서 다뤘던 Delegate에 대해서 써보려고 한다. 먼저 Delegate란 무엇일까?Delegate는 대리자 이다.구독되어 있는 함수를 대신 실행시키고, 구독시킬 수 있는 함수는 매개변수와 리턴 값이 동일해야한다.간단하게 말하자면 함수를 변수화 시키는 느낌이며, 하나의 목표를 가진 집단이라고 생각할 수 있다. 기본적인 형식은 다음과 같다.public delegate void MyTestDelegate();public delegate void MyDelegate(int a, int b);void Awake (){ MyDelegate cal = new MyDelegate(Plus); cal += Subtract cal(1, 2);}public void Plus(int a, in..