전체 글 717

책 [어떻게 살아야 하는가] 좋아하는 문구

"하지만 노동은 인간에게 매우 심원하고 숭고하며 큰 가치와 의미를 지닌 행위이다. 노동에는 욕망을 이겨내고 마음을 수양하면서 인격을 길러나가는 효과가 있다. 단순히 생계에 필요한 양식을 얻는 데 그치는 것이 아니라 영혼을 연마하는 행위인 것이다. 그렇기에 날마다 자신의 일에 온 마음을 다해 노력하는 자세가 가장 중요하며, 그렇게 살아가는 삶이야말로 인간의 내면을 성장시키고 인격을 높이는 고귀한 '수행'이다."

LifeLog 2022.04.12

[실전 유니티 C#] 변수 (variable)

이제 변수에 대해서 배울 시간입니다.컴퓨터는 데이터 (data) 를 가공해서 사람에게 어떤 형태로든 보여주는 기계입니다.변수는 이 데이터를 담는 공간을 의미합니다.변수는 컴퓨터 메모리 (RAM)에 저장됩니다.그리고 변수에 저장된 데이터는 바뀔 수도 있습니다. 우리가 지금까지 살펴본 코드에는 아직 변수가 보이지 않습니다.아래와 같이 코드를 한 줄 추가해 보겠습니다.11번 라인에 빨간색으로 표시된 곳에 변수를 선언하면서 초기화를 하였습니다.이 때, 선언이란, 컴퓨터에게 앞으로 이런 변수를 사용할 거라고 알려주는 행위입니다.초기화란, 말 그대로 변수에 값 (value) 을 채워 주는 것을 의미합니다.  그래서 11번 줄을 한국어로 번역해 보자면 이러합니다."a 라는 이름을 가지고 있는 정수형 변수를 0 으로 ..

[실전 유니티 C#] 주석 (comment)

이제는 코드를 자세히 뜯어 볼 차례입니다.Visual Studio 2022 Community 버전이 설치되어 있어야 합니다.만약 다른 에디터나 IDE를 쓰고 있다면, 따라 하는데 크게 어렵지 않을 것입니다.다만, 무료이고 널리 쓰이는 툴을 쓰는 것일 뿐입니다. 아래 코드는 이전 게시글에서 작성한 스크립트입니다.여기서 말하는 스크립트는 cs 파일을 의미합니다.소스코드라고도 하지만, 그것 보다는 유니티 C# 스크립트라고 부르는 것이 좋겠습니다.앞으로는 스크립트라는 용어로 통일 하도록 하겠습니다.위 스크립트를 보면 초록색 텍스트가 보입니다.(에디터 또는 IDE 또는 설정한 옵션에 따라 색상은 다를 수 있습니다.)슬래쉬 두 개 (//) 로 시작하면 그 라인은 주석이 됩니다.주석이란, 스크립트를 작성한 프로그래머..

[실전 유니티 C#] 유니티 콘솔창에 로그 출력

강의에 앞서 유니티 버전을 맞추어야 합니다.이미 유니티 허브를 설치하신 분들은 아래 LTS(Long Term Support) 버전을 추가로 설치하셔야 합니다.LTS 버전을 추가로 설치하는 방법을 이 문서를 참고해 주세요.유니티 버전 : 2020.3.30f1 LTS유니티 허브에서 Projects => New project 버튼을 클릭합니다.그러면 아래와 같은 화면이 나옵니다.새로운 프로젝트로 먼저 유니티 에디터의 버전을 선택합니다. (2020.3.30f1 LTS)그 다음은 2D Core를 선택합니다.Project name을 여러분이 정하고 싶은 이름으로 정해봅니다.저는 HeyUnity로 이름을 지어보겠습니다.마지막으로 Create project 버튼을 클릭하면 모든 신규 프로젝트 생성이 완료됩니다.그러면 ..

[실전 유니티 C#] 서문

유니티 엔진은 출시한지 17년이나 되는 역사가 오래된 엔진이 되었습니다.2005년에 출시했으니까요.유니티는 게임 업계뿐만 아니라, 다양한 산업에서 활용되는 엔진입니다.태생은 게임 엔진이었지만, 요즘 트렌드인 메타버스에서도 유니티 엔진이 쓰이고 있습니다. 저는 Flash, DirectX, OGRE, cocos2d-x 등 다양한 게임 엔진을 사용해 보았는데, 유니티만한 엔진이 없었습니다. 유니티 공식 홈페이지나 여러 유니티 서적들에서도 말하지만, 유니티의 좋은 점을 몇 가지 나열해 보겠습니다.입문 하기에 쉽습니다.그러나 마스터 하기에는 어렵습니다. (이게 좋은 점인가?)다양한 컨텐츠를 제작할 수 있는 개발 자유도가 높습니다.멀티 플랫폼을 지원해서 비교적 쉽게 포팅이 가능합니다.프로그래머의 영역이 아니라 게임..

[실전 유니티 C#] 목차

대상 : 유니티와 C#이 처음인 입문자를 대상으로 합니다. 목차서문유니티와 C# 소개유니티C#유니티 콘솔창에 로그 출력C# 문법주석 변수들여쓰기데이터 타입상수란 무엇인가문자열 다루기if 문으로 조건을 만들다if 와 else if 와 elseswitch case 문열거체 enum유니티 에셋스토어스프라이트 배치함수클래스컴포넌트 기반 프로그래밍GameObjectMonoBehaviour유니티 Inspector실전 게임 개발 I - 총알 피하기 게임실전 게임 개발 II - 타자 연습 게임네트워크 프로그래밍

[TIL] Transform.SetParent( Transform parent, bool worldPositionStays )

파라미터로 bool 형의 worldPositionStays 가 있는데, 이것을 true로 해야 월드 좌표계의 위치, 회전, 스케일이 이전과 같이(SetParent 하기 이전) 유지가 됩니다. using UnityEngine; public class ExampleClass : MonoBehaviour { public GameObject child; public Transform parent; //Invoked when a button is clicked. public void Example(Transform newParent) { // Sets "newParent" as the new parent of the child GameObject. child.transform.SetParent(newParent)..

Engine/Unity 2022.04.01

[Unity TIL] transform.Find("Child/ChildOfChild") 성능

transform.Find()는 성능에 큰 영향을 주지 않습니다. 유니티 공식 스크립트 레퍼런스 문서에 따르면, 아래와 같이 설명합니다. Note: Find does not perform a recursive descend down a Transform hierarchy. 사용 방법은 파라미터에 Hierarchy 상의 경로를 지정하고 슬래시로 구분합니다. 출처 - https://docs.unity3d.com/2021.1/Documentation/ScriptReference/Transform.Find.html Unity - Scripting API: Transform.Find If no child with name n can be found, null is returned. If n contains a '..

Engine/Unity 2022.03.27

[TIL] MonoBehaviour.StopCoroutine() 주의사항 한 가지

당연한 것일 수도 있겠지만 비활성화된 (Disabled) 게임 오브젝트에는 StopCoroutine()이 안 먹힙니다. 만약 코루틴을 시작하거나 정지할 때 해당 게임오브젝트가 비활성화 되어 있다면 에러가 발생합니다. using UnityEngine; using System.Collections; public class Example : MonoBehaviour { // keep a copy of the executing script private IEnumerator coroutine; // Use this for initialization void Start() { print("Starting " + Time.time); coroutine = WaitAndPrint(3.0f); StartCoroutin..

Engine/Unity 2022.03.22