목록Unity/스크립팅 (12)
개발블로그
using UnityEngine; using UnityEngine.UI; private Image _imgSample = null; private Image _imgSuper = null; private void Start() { if(_imgSample) BlahBlah(); } private void BlahBlah() { _imgSuper.SetActive(false); } 코드 분석중에 처음보는 구문을 발견했는데, 바로 if문에서 image타입만 조건으로 들어있는 조건문이었다. 보통은 if(_bool == true) 이런식의 조건문을 많이 사용해왔어서 생소한 구문이다. // 처음에 nullable 타입인줄 알았는데 오브젝트의 암시적 null 비교 구문이었다😂 nullable 타입도 정리해봐야할듯...
💪GOAL MMORPG에서 많이 사용하는 카메라 무빙으로 캐릭터의 뒤통수를 쫓아다니면서 확대, 축소가 가능하고 마우스를 움직이는 대로 캐릭터의 방향도 움직인다. 오늘은 MMORPG에서 많이 사용하는 FollowCamera를 만들어보자! 가장 먼저 씬에 캐릭터와 바닥, 그리고 엘리온과 같이 화면 중앙에 크로스헤어를 배치한 후 스크립트를 작성했다. public class FollowCamera : MonoBehaviour { // CAM GameObject _player = null; Vector3 _targetPos = Vector3.zero; Vector3 _basicPos = Vector3.zero; float _defaultDist = 7f; // 카메라 시작 거리 float _currX = 0.0f..
다형성은 객체지향언어의 특징으로, · 상위클래스가 자식클래스의 값으로 오버라이딩(재정의)
지난 포스팅에서 Action의 예제로 자동차 리스트에서 Action을 사용함으로써 의존성을 낮추는 방법에 대해서 작성했다. 다른 예제를 작성하며 Action을 이해하자. https://devheehee.tistory.com/27 [유니티 C#] Action 과 Func 💪 GOAL https://devheehee.tistory.com/21 지난 포스팅에서 Delegate의 사용 방법을 알아보았다. 지난 시간에 이어서 C#에서 Delegate를 좀 더 간단히 사용할 수 있도록 미리 선언한 Delegate 변수인 Action과 F.. devheehee.tistory.com 💪 GOAL - Action을 사용해서 견고한 커플링을 해소하는 예제를 작성하며 익힌다. 🔶 이벤트(Event) 이벤트는 이벤트 자체로는..
💪 GOAL - 유한 상태머신의 뜻을 이해한다. - 유한 상태머신을 이용한 캐릭터 애니메이션을 구현한다. 게임을 개발할 때 '유한 상태머신(FSM)'이라는 말을 한번쯤은 들어봤을 것이다. 유한 상태머신은 유한한 수의 상태가 존재하며, 한 번에 한 상태만 '현재 상태'가 되도록 프로그램을 설계하는 모델이다. 유한 상태 머신에서는 어떤 상태에서 다른 상태로 전이하여 현재 상태를 전환할 수 있다. 가장 기본적인 예로 게임의 Monster AI를 유한 상태머신으로 구현한다고 가정해보자. 가장 기본적으로 몬스터는 Idle(대기), Trace(추적), Attack(공격) 로 세가지 상태를 가질 수 있다. 화면에서 대기하고 있다가, 플레이어(공격대상)가 몬스터의 시야에 들어오면 추적하고, 사정거리에 있다면 공격한다...
💪 GOAL - GetAxis || GetAxisRaw를 이용해서 오브젝트를 이동시킨다. - 오브젝트가 바라보는 방향으로 이동시킨다. 🔶 Input.GetAxis(string name) : 키보드와 조이스틱 입력값에 대해 -1에서 1까지의 값을 가진다. 독립적인 프레임 속도로 작동하고, 부드러운 이동이 필요한 경우에 사용한다. 🔶 Input.GetAxisRaw(string name) : 키보드와 조이스틱 입력값에 대해 -1에서 1까지의 값을 가진다. 키보드나 조이스틱을 눌렀을 때 즉각 반응이 필요한 경우에 사용한다. 실습 버전 :: 2020.3.14f GetAxis의 매개변수로는 string name이 들어간다. 이곳에 들어가는 string name은 Edit - Project Settings - Inp..
💪 GOAL https://devheehee.tistory.com/21 지난 포스팅에서 Delegate의 사용 방법을 알아보았다. 지난 시간에 이어서 C#에서 Delegate를 좀 더 간단히 사용할 수 있도록 미리 선언한 Delegate 변수인 Action과 Func의 차이점을 알아보자. - C#에서의 델리게이트 기능을 손쉽게 사용할 수 있도록 지원하는 Action과 Func에 대해 이해한다. 🔶 Action Action 타입은 입력과 출력이 없는 메소드를 가리킬 수 있는 델리게이트다. 입력과 출력이 없는 메소드를 등록할 수 있고, 등록된 메소드는 원하는 시점에 매번 실행할 수 있다. 예제 코드를 보자. public class Monster : Monobehaviour { Action attack; vo..
💪 게임에서 최종 보스를 물리칠 때 슬로우 모션으로 보여지는 효과를 많이 보았다. 혹은 왼쪽 하단에 게임의 진행 속도를 조절할 수 있는 배속 버튼도 많이 사용한다. 유니티에서 시간을 빠르게, 혹은 느리게 움직이는 방법을 알아보고, TimeScale에 의존 적인 unscaledTime 도 알아보도록 하자. 🔶 Time.timeScale 시간이 경과하는 크기를 나타낸다. timeScale이 1.0인 경우에 실제 시간과 같은 속도로 경과한다. timeScale이 만약 0.5라면 실제 시간과 비교해서 2배 느리게 경과한다. timeScale이 0으로 설정되는 경우에는 일반적으로 프레임 비율(framerate)과 독립적으로, 모든 기능을 일시 정지한다. 예를 들어 타이머가 가고있는 인게임에서 일시 정지 버튼을 누..
💪GOAL 1) Time.deltaTime의 정의와 응용 예제 2) Application.targetFrameRate을 통한 프레임 제어 Time 클래스는 유니티로 부터 시간 정보를 받을 때 사용하는 인터페이스를 나타낸다. 프로젝트에서 시간 관련 값으로 작업할 수 있는 중요한 기본 속성을 제공한다. Time 클래스에서 가장 일반적으로 많이 사용하는 프로퍼티 중 Time.deltaTime 이 있다. 🔶Time.deltaTime 마지막 프레임이 완료된 후 경과된 시간을 반환한다. 게임 내에서 방향키를 눌러서 캐릭터를 이동해야 하는 경우가 있다. 예제 코드를 보자. using UnityEngine; public class StudyTime : MonoBehaviour { [SerializeField] floa..
💪 GOAL 객체지향 프로그래밍을 공부하다 보면 자주 마주치는 용어들이 있다. 변수, 메소드, 클래스, 인스턴스, 객체 ... 등 용어들의 뜻과 객체지향 프로그래밍에서의 클래스 개요를 이해하고 변수와 프로퍼티의 차이점까지 짚어보도록 한다. 객체 지향 프로그래밍(Oriented Object Programming-OOP)은 객체(Object)를 사용해서 프로그램을 처리한다. 문제를 여러 개의 객체로 나누어 독립적인 객체 단위로 분리해서 작업할 수 있기 때문에 여러 개발자가 협업해서 규모가 큰 프로젝트를 진행하기 용이하고, 유지보수 측면도 뛰어나다는 장점이 있다. 객체는 상태(State)와 행동(Behavior)을 가지는 것을 말한다. 즉, 현재 상태와 행동을 각각의 변수와 메소드로 나타낼 수 있어야 하는 것..