- Today
- Total
목록분류 전체보기 (360)
프로그래밍 농장
이번글에서는 이벤트와 델리게이트를 사용하기 쉽게 유니티가 wrapping 해 놓은 오브젝트인 유니티 이벤트에 대해서 알아보자. - 이벤트? : 사건이 발생되면 그 사건에 등록을 해놓은 기능들이 자동으로 같이 발동되는것 -> 이때 이벤트를 발생시키는쪽, 그 이벤트에 기능을 등록해놓은 오브젝트들 서로가 전혀 연계되어있지않다 -> 이로써 스파게티처럼 코드가 엮이는 불상사가 없어진다. 예를 들어 플레이어가 사망함과 동시에 -> 사망했다는 UI / 도전과제 unlock / . . 과 같은 다양한 기능을 깔끔하게 수행하고 싶다고 가정해보자. 위와 같이 PlayerAsset에 collider를 주어 아래 용암에 닿으면 console log에 죽었다는 알림과 함께 PlayerAsset을 삭제하고싶다. 당연하게도 Pla..
Property(프로퍼티)는 일반적으로 변수와 같이 사용하지만 사실 내부에는 특정한 함수처리를 끼워넣을수있다. 바깥에서보면 변수처럼 사용하지만, 실제로는 특수한 처리를 끼워넣을수있는 기능이다. -> 이를 통하여 변수로 값을 선언 또는 외부에서의 덮어씌우는 등의 실수나 임의변경하는 상황을 방지할 수 있다. 아래의 예시를 보자. -> 위와 같은 문제가 발생하지않도록 값의 참조 (get)만을 가능하도록 프로퍼티의 특성을 활용하여 아래와 같이 설정할 수 있다. 아래와 같이 pointManager.point의 값을 -100으로 임의로 변경하고 deblog.log를 돌려보자. 아래와 같이 public int m_point 라는 private 변수를 클래스 내에 하나 만든후, point 변수는 get{},set{} ..
오버라이드란, 부모에서 만든 기능을 상속받은 자식에서 마음대로 덮어씌울수 있는것이다. 자식에서 오버라이드를 할때, 변수명(메서드명)과 타입은 동일해야한다. 아래의 예시를 참고하자. ublic class BaseRotator : MonoBehaviour { public float speed = 60f; void Update() { Rotate(); } //자식들만 접근가능 //virtual : 자식들이 이를 덮어씌울수있음 (대체가능) protected virtual void Rotate() { transform.Rotate(speed * Time.deltaTime, 0, 0); } } 위의 부모클래스 BaseRotator는 virtual이 붙은 protected 접근제어자의 Rotate() 라는 함수를 가..
어느덧 2주간의 개발 기획에 대한 학습이 마무리되고 3주차부터는 직접적인 Unity 개발과 c# 프로그래밍에 대한 수강을 하였다. 막상 Unity 개발과 c# 프로그래밍을 시작하려니 설렘과 긴장이 공존했지만 강사님께서 정말 이해하기쉽고 친절하게 강의를 진행해주셔서 학습에 많은 도움이 되었다. 이번주에는 기본적인 Unity엔진에 대한 사용법에 들어가기 전, c# 프로그래밍 전반에 대한 기본개념과 구현방식, 그리고 현업에서의 개발방법 등. . 개발환경 전반에 대한 기반을 다지는 것으로 한주가 진행되었다. 가장 첫번째로는 Unity 스크립트에서 가장 중요한 클래스 개념인 Monobehavior와, 유니티의 동작과정에서 수행되는 생명주기(LifeCycle)에 대하여 배웠다. 유니티 프로젝트가 실행되면 크게 아래..
코루틴 : 처리와 처리 사이에 대기를 삽입할 수 있으며, 또한 여러처리를 순차적이 아닌, 동시(병렬)로 수행할 수 있다. Unity에서 예를 들면, Fade-in / Fade-out 방식의 화면이 점차 어두워지면 전환되는 기능을 구현하기 위해서는 코루틴이 필수적이다. 아래와 같이 FadeImage의 alpha값을 for문을 돌려 0까지 낮추어준다 할때, for문에 대기를 주지 않는다면 시작과 동시에 alpha값이 0이되어 확인할 수 없을것이다. 이때 대기를 주기위해 코루틴을 사용할 수 있다. 일반적인 함수는 함수가 발동이 되었을떄, 첫번째-> 마지막 라인까지 도달해야지 종료된다. 반면 코루틴은 ienumerate라는 타입을 반환하는 함수로서 사용하게 된다. IEnemerator Coroutine(){ /..
싱글톤 패턴은 '디자인 패턴' 중 하나이다. 디자인 패턴이란, 프로그래밍을 할 때 코드를 작성하는 약속된 방법이다. 싱글톤은 기본적으로 게임이나 메모리 상에 단하나만 존재하며, 언제 어디서든 접근가능한 오브젝트를 만들 때 사용되는 패턴이다. ex) 게임 상의 ScoreManger는 하나만 존재하여야하며, 모든 플레이어들이 언제나 접근가능하도록 설정하여야 할 것이다. 위와 같이 한 게임상에서는 다양한 Score 관련 스크립트, 함수들이 존재할것이다. 또한 Score를 관리하는 ScoreManager는 게임상에 하나뿐이다. 바로 이때 위와 같이 Score에 영향을 미치는 함수들의 Script를 때마다 ScoreManager에 참조시켜서 사용하는것이 아니라, 싱글톤 패턴을 사용하면 된다. -> 자기자신(Sco..