본문 바로가기

내일배움캠프_TIL

(59)
10월 5일 TIL 변수의 값과 참조 변수에 데이터를 저장할 때는 값과 참조 2개의 방식으로 나뉜다 값은 변수에 데이터를 직접 저장하는 방식 int x = 10; int y = x; x = 20; x는 20, y는 10이 저장된다 y에 x를 저장했지만 실제로 저장된건 x에 저장되어있던 10이 저장된 것이고 x와 y는 전혀 상관 없는 데이터가 된다 Class A { aNum = 10; } class B { bNum = A.aNum; } 반면에 이 경우에는 aNum의 값이 변경될 때 bNum도 같이 변경된다 bNum에 저장된 값은 aNum에 저장된 10이 아니라 aNum의 메모리 상 주소값이기 때문이다
9월 27일 TIL 스트링 빌더 StringBuilder는 변경할 수 없는 string과 달리 변경 가능한 문자열을 나타내는데 사용하는 클래스 string 객체는 값이 변경되면 메모리에서 이전 참조 값을 버리고 새로운 참조 값으로 변경되지만 StringBuilder 객체는 참조 값이 변경되지 않고 힙 메모리에서 값이 삽입, 추가, 제거한다 using System.Text; StringBuilder 클래스를 사용하려면 System.Text를 추가해야한다 // StringBuilder 객체 생성 StringBuilder strBuilder = new StringBuilder(); // StringBuilder 객체 생성과 초기화 StringBuilder strBuilderInit = new StringBuilder("Init ..
9월 26일 TIL 스크립터블 오브젝트 유니티에서 제공하는 데이터 컨테이너 값의 사본이 생성되는 것을 방지하여 프로젝트의 메모리 사용을 줄일 수 있다 변경되지 않는 데이터를 사용하는 프리팹에 유용함 모노비헤이비어를 사용하는 일반 스크립트와 달리 오브젝트에 컴포넌트로 부착이 불가능 using UnityEngine; [CreateAssetMenu(fileName = "Zombie Data", menuName = "Scriptable Object/Zombie Data", order = int.MaxValue)] public class ZombieData : ScriptableObject { [SerializeField] private string zombieName; public string ZombieName { get { r..
9월 25일 TIL 디자인 패턴 문제 발생:Duck 클래스에 fly 메서드를 추가하면서 날면 안되는 러버덕이 나는 기능을 갖게 됨 따라서 오버라이드로 Duck의 fly를 RubberDuck에서 아무 동작도 하지 않게 재정의함 하지만 나무오리, 플라스틱오리 등이 계속 추가된다면 계속해서 오버라이드를 해줘야한다 코드의 재사용성을 위해 상속을 사용했지만 재사용성이 떨어지는 경우 발생 상속은 조심해서 사용하지 않으면 코드 변경시 자식 클래스에 원치않는 영향이 생긴다 모든 자식 클래스의 동작을 추정하기 어렵기 때문이며 불필요한 코드 중복이 발생된다 달라지는 부분을 찾고 변경되지 않는 부분과 분리해야한다 > 캡슐화 인터페이스를 사용하면 된다 그리고 각각의 인터페이스를 Duck 클래스가 아닌 특정 행동만을 목적으로 하는 클래스에서 구현..
9월 20일, 21일 TIL 20일 개인과제 - ATM 만들기 Main/Despoiot/Withdrawal 3개의 씬으로 나눠 구현 현금과 은행잔액 데이터 저장은 playerprefs로 구현 입금/출금 씬에서 변동된 잔액이 메인씬에서 다시 초기값으로 돌아오는 현상 발견 >입금/출금 씬에서 변수에 playerprefs.getint를 저장하고 값에 변동이 생길때 해당 변수만 변경하고 있었음 >playerprefs의 해당 키에 저장된 밸류의 값은 초기값 그대로 >변동이 생길 때 setint를 사용해 정상적으로 작동하도록 수정 21일 후발대 줌 강의 Static은 객체를 생성하지 않고 바로 사용 가능하기에 편해보일 수 있지만 메모리공간을 잡고 사라지지 않기 때문에 gamemanager나 절대로 변하지 않을 데이터에만 사용하는것이 좋다 여태..
9월 19일 TIL Monobrhavior 유니티로 생성하는 C# 스크립트들은 모노비해이비어를 상속 이를 통해 start, update 등의 유니티 라이브사이클을 이용 가능 awake > start > onenable > disanable > ondistroy 의 순서는 기억해두기 update는 기기의 성능에 따라 갱신속도의 차이가 있음 fixedupdate는 모든 기기에 일정한 속도로 적용되지만 update보다 무거움 기기 성능에 관계 없이 일정한 처리가 필요할떈 update에서 time.deltatime을 곱해서 적용
9월 18일 TIL 쿼터니언 -4차원 복소수를 이용한 회전 표현 방법 (x, y, z, w) 형태로 표현 -오일러 각도(Euler angles)를 사용하여 회전을 표현할 경우 발생하는 짐벌 락(Gimbal Lock) 문제를 피할 수 있다 -직접 값을 변경하거나 계산하는 대신, Unity의 내장 함수를 사용 -쿼터니언은 일반적으로 정규화해서 사용 아크탄젠트 -삼각함수의 역함수 특정 비율에 대한 각도를 계산하는 데 사용. -2차원 공간에서 점 또는 벡터에 대한 각도를 찾는 데 사용 -사인과 코사인 함수를 이용하여 직각 삼각형에서 빗변의 각도를 계산하는 데 사용 -특히 객체가 특정 방향을 향하도록 만들거나 두 점 사이의 각도를 계산할 때 유용 스크립터블 오브젝트 -유니티에서 데이터를 저장하고 관리하는 데이터 컨테이너 -게임에서 ..
9월 15일 TIL Event 델리게이트의 한 종류 델리게이트를 기반으로 하여 옵저버 패턴과 유사하게 활용 delegate 반환형 델리게이트이름(매개변수); event 델리게이트이름 변수이름; 사용법 델리게이트를 선언 후 event를 앞에 붙여 사용 차이점 델리게이트 : 함수에 대한 참조 그 자체 이벤트 : 델리게이트를 기반으로 해당 이벤트를 등록해 필요한 함수들를 이벤트 발생 시 전부 실행