유니티(Unity) 프로그래밍 16

유니티3D 아날로그 시계

이번 글은 실제 시간에 따라 움직이는 아날로그시계를 만들어보겠습니다. 우선 전역변수 먼저 선언하겠습니다.[SerializeField] private Transform SecCubeTr = null;[SerializeField] private Transform MinCubeTr = null;[SerializeField] private Transform HourCubeTr = null;[SerializeField] private float distance = 2.0f;private float Secangle = 0f;private float Minangle = 0f;private float Hourangle = 0f;SecCubeTr: 초침을 의미하는 큐브오브젝트의 위치값MinCubueTr: 분침을 의미하는..

Unity3D 추격2

이전 글에서 언급한 대로 랜덤한 위치에 타겟을 지정한 시간마다 이동시키고 그걸 추격하는 오브젝트를 구현해 보겠습니다. 우선 타겟 오브젝트를 생성하고 필요한 기능을 나열해 보겠습니다. Target.cs랜덤을 적용할 범위 변수 선언위치 변경 쿨타임 변수 선언위치 바뀌고 시간 경과 변수 선언두 시간 변수 간 상호작용타겟 오브젝트 랜덤한 위치로 이동위를 참고해서 코드를 짜보겠습니다.using UnityEngine;public class Target : MonoBehaviour{ private float range = 10f; //바뀌는 위치 범위 변수 private float resetTime = 2f; //위치 변경 쿨타임 변수 private float duration = 0f; //위..

Unity3D 추격

어떤 장르의 게임이든 잘 사용되는 추격 기능에 대한 코드를 보겠습니다. 여기선 Vector3, 정규화, Time.deltaTime 3가지를 사용하여 만들 수 있는데 여기서 벡터는 수학적 개념이 들어간 기능입니다. 여기서 벌써 벽이 느껴지는데 먼저 Vector 연산에 대해 다뤄보겠습니다. 위가 벡터의 기본 연산 방법 예시입니다. 덧셈, 곱셈, 나눗셈은 거리에 대한 것뿐이지만, 뺄셈은 다릅니다.그림에 적혀있듯이 A - B = B에서 A로의 방향과 거리를 뜻합니다. 즉, x축 3에서 1이 되려면 -2, y축에서 1에서 3이 되려면 2가 필요합니다. 그래서 (-2, 2)가 됩니다. 이는 유니티에서 오브젝트 간의 추격 기능에 중요하게 다룹니다. 네 개의 연산 외에도 내각과 크로스하는 점을 다루는 내적, 외적이라는..

Unity3D에 유용한 기능들 (1)

이번 글은 Unity3D에서 유용하게 다루는 기능들을 정리해 보겠습니다.Prefabs: 일종의 보관함으로 프로젝트에서 사용할 오브젝트 원본들을 보관하는 폴더입니다.Prefabs에 있는 오브젝트들을 Hierarchy에 뽑아 사용할 땐 클론(clone)의 형태로 사용됩니다. 클론 오브젝트들은 속성을 바꿔도 원본에는 영향을 끼치지 않습니다.Tag: 오브젝트들의 큰 카테고리로 생각하면 됩니다. 활, 단검, 창 등의 오브젝트를 생성하고 이들을 같은 tag로 묶어놓을 수 있습니다.Inspector창의 이름 바로 밑에 Tag가 존재합니다. 추가, 분류, 삭제가 가능합니다.[SerializeField] 직렬화 : 이를 이용하면 Inspector창에 관련 변수가 나오게 되고 그곳에서 값을 정해줄 수 있습니다. 스크립트보..

Unity3D에서의 상속

상속(Inheritance)이 무엇일까요? 상속 (Inheritance) (tistory.com) 상속 (Inheritance)상속(Inheritance)은 'Parent - Child(부모클래스 - 자식클래스)', 'Base - Derived(기본클래스 - 파생클래스)', 'Super class - Sub class' 로 부릅니다.  상속은 Parent class의 데이터를 Child class에서 불러올 수 있습니hwangameinformation.tistory.com제가 이전에 다룬 상속 글입니다. 쉽게 설명하자면 부모 class에서 다루는 함수와 변수를 자식 class가 상속받아 사용하는 것입니다. 이 기능은 특정 여러 Script에 같은 코드를 작성하는 번거로움을 해결해줍니다. 예시로 코드를 가..

유니티(Unity) Component제어

유니티는 C# 언어를 사용하는 대표적인 게임 엔진 중 하나입니다. 위의 사진은 유니티의 생명주기로 호출되는 순서라고 생각하시면 됩니다.  오늘은 유니티의 기초적인 기능인 이동, 충돌, 물리를 다뤄보겠습니다. 우선 Empty, Capsule, plane 생성하고 시작합니다. 오늘 다뤄야할 충돌, 물리에 필요한 Rigidbody, Collider을 알아보겠습니다.using System.Collections;using System.Collections.Generic;using UnityEngine;public class LifeCycleTest : MonoBehaviour // MonoBehaviour: 유니티가 제공하는 FlameWork{ //가장 먼저 호출되는 Awake 함수 //여기서 보통 ..