유니티
-
[TIL] 14주차 2일 기술면접 대비 C# 심화 문법개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 17. 09:04
다음 코드에서 제네릭을 사용한 부분을 식별하고, 해당 코드가 제네릭을 사용하지 않았을 때 발생할 수 있는 문제점에 대해 설명하세요.Box클래스에서 제네릭을 사용했다. 제네릭을 사용하지 않았다면 같은 내용의 매개변수만 다른 함수를 모두 새로 만들어야하는 문제점이 발생할 수 있다. 2. 아래 코드가 어떤 기능을 하는지, 어떤 방식으로 동작하는지 간단하게 설명해주세요.public static T Max(T a, T b) where T : IComparable { return a.CompareTo(b) > 0 ? a : b; } a와 b의 값을 비교해서 a가 더 크면 a, b가 더 크면 b를 반환한다.제네릭으로 선언된 a와 b를 비교하되, IComparable에서 파생된 클래스인 경우에만 사용 가능하도록whe..
-
[TIL] 13주차 5일 기술 면접 대비 ( 가비지 컬렉터, 박싱 언박싱 주의점 )개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 16. 09:01
using System;public class Logger{ public string LogMessages { get; private set; } public Logger() { LogMessages = string.Empty; } public void Log(string message) { LogMessages += message + "\n"; }}public class Program{ public static void Main() { Logger logger = new Logger(); for (int i = 0; i 1. 위의 코드가 문제가 되는 이유를 메모리 관점에서 설명해주세요. s..
-
[TIL] 14주차 1일 DOTween개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 15. 20:32
플레이어 제작을 어느정도 마치고UI제작에 참여했다. 스킬슬롯 UI를 만들었는데DOTween을 이용하여 만들었다. DOTween은 일종의 에디터 에셋인데 원래는 코루틴으로 여러 연산을 통해서 만들어야하는UI의 쿨타임 표시, 부드러운 움직임 등을 편하게 만들어주는 에셋이다. public class SkillUI : UIBase{ Player player; Sprite icon; Image image; SkillUI skillUI; public List skillList; public List skills; public GameObject firstSlot; public GameObject secondSlot; private float skillSwapSpeed..
-
[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를 계산한다. 하지만 이러고 ..