C#Tutorial 1.1-Clock을 터치해 보십시오.

5466 단어 Unity

Unity Tutorial


Unity를 조사해 봤는데 아주 좋은 Tutorial을 발견했어요.
유닛 공부에 딱 맞는 것 같아서 한번 해보겠습니다.
또한, 필자의 영어 능력은 아직 전투력 5에 미치지 못하니, 잘못 해석했다면 용서해 주십시오.
먼저 보험에 들겠습니다.

Clock


먼저 Tutorial 1-1Clock부터 시작합니다.
완성형은 아래의 그림이다.
(이해하기 어렵지만 시계다.)

이번에 진행된 요소는 대체로 다음과 같다(최초의 강좌이기 때문에 기본적으로)
* 객체 작성
* 스크립트 생성
* 객체 회전
* 수령 시간
그럼 Tutorial 순서대로 해보세요.

1.Creating the clock


먼저 시계바늘 제작입니다.
코끼리의 경우 Cube를 사용합니다.
먼저 Hierrarchy부터 시계 바늘을 빈 객체(Clock) 및
각 객체에 대해 빈 객체 만들기(Hours, Minutes, Seconds)
그 아래에 바늘(Cube)을 만듭니다.
2017-03-03_155718.png
큐브의 크기는 각각 다릅니다.
* Hours : position(0, 1, 0) scale(0.5, 2. 0.5)
* Minutes : position(0, 1.5, 0) scale(0.25, 3, 0.25)
* Seconds : position(0. 2. 0) scale(0.1, 4. 0.1)
.
왜 각 대상의 부하들이 큐브를 만듭니까?
잘 보이기 위한 이유가 있을지도 모르지만, 이번에는 바늘의 회전 처리를 가볍게 하기 위한 것 같다.
시계의 포인터는 포인터의 끝에서부터 회전하기 시작하며 직접 포인터(Cube)를 돌리면 시계의 포인터가 객체 중앙에서 회전합니다.
따라서 객체(Hours, Minutes, Seconds)의 중심에 바늘(Cube)의 회전 축을 배치하여 객체를 회전시키면 바늘이 근본적으로 회전합니다.
이 회전에 관해서도 조금 설명해 주세요.

2.Animating the clock


다음에 회전 포인터의 스크립트를 만듭니다.
먼저 Clock Animatior라는 C# 스크립트를 만들고 Clock에 첨부합니다.

다음 스크립트에 바늘을 저장할 수 있는 변수를 설명합니다.
using UnityEngine;

public class ClockAnimator : MonoBehaviour {

    public Transform hours, minutes, seconds;

}
public으로 변수를 선언함으로써 Inspector에서 수치를 관측할 수 있습니다.
개별적으로 작성된 객체를 드래그하여 연결합니다.

각 단위 시간의 각도를 정의합니다.
회전 각도는 1시간 360/12도, 분초 360/60도다.
private const float
    hoursToDegrees = 360f / 12f,
    minutesToDegrees = 360f / 60f,
    secondsToDegrees = 360f / 60f;
마지막으로 현재 시간을 가져오고 회전합니다.
DateTime 클래스를 사용할 시간을 얻으려면 System을 사용해야 합니다.
using System

private void Update () {
    DateTime time = DateTime.Now;
    hours.localRotation =
        Quaternion.Euler(0f, 0f, time.Hour * -hoursToDegrees);
    minutes.localRotation =
        Quaternion.Euler(0f, 0f, time.Minute * -minutesToDegrees);
    seconds.localRotation =
        Quaternion.Euler(0f, 0f, time.Second * -secondsToDegrees);
}
Update()는 프레임마다 호출되는 함수입니다.
    DateTime time = DateTime.Now;
획득 시간
Transform.localRotation
회전
Quaternion에 대한 설명이 길어지기 때문에 자세한 설명은 생략됩니다(자신도 이해할 수 없습니다)
Quaternion.Euler(x, y, z)
는 (x, y, z) 각 축에 입력된 각도 회전입니다.
회전의 중심점은 객체의 중심입니다.
2. 에서 제작한 Transform을 각각 Cube에 연결하여 회전하면 다음과 같은 회전이 진행됩니다(짧은 바늘만 분리되어 있지만 개의치 마십시오).

그림과 같이 객체 중심을 축으로 회전합니다.
또한 세계 좌표를 사용하여 회전하는 경우에도 회전 방향은 세계 데이텀이지만 회전 축은 객체의 중심인 것 같습니다.
참고로 편집부에서 회전축을 볼 때 표시를 Pivot(왼쪽 상단의 그것)로 해야 한다고 합니다.

중심은 이렇다.

Tutorial처럼 표시하려면 Pivot로 설정합니다.
그 다음에 이렇게 실행하면 지금 시간이 표시됩니다.

3.improvinig the clock


지금처럼 포인터는 시간, 분, 초 단위로만 움직일 수 있다.
이 항목에서는 부드럽게(시뮬레이션) 동작을 선택할 수 있습니다.
DataTime에서는 정수 단위로만 수치를 얻을 수 있으므로 Timespan을 사용합니다.
public bool analog;
private void Update () {
    if (analog) {
        TimeSpan timespan = DateTime.Now.TimeOfDay;
        hours.localRotation = Quaternion.Euler(
            0f, 0f, (float)timespan.TotalHours * -hoursToDegrees);
        minutes.localRotation = Quaternion.Euler(
            0f, 0f, (float)timespan.TotalMinutes * -minutesToDegrees);
        seconds.localRotation = Quaternion.Euler(
            0f, 0f, (float)timespan.TotalSeconds * -secondsToDegrees);
    }
    else {
        DateTime time = DateTime.Now;
        hours.localRotation =
            Quaternion.Euler(0f, 0f, time.Hour * -hoursToDegrees);
        minutes.localRotation =
            Quaternion.Euler(0f, 0f, time.Minute * -minutesToDegrees);
        seconds.localRotation =
            Quaternion.Euler(0f, 0f, time.Second * -secondsToDegrees);
    }
}
timeSpan은 더블에서 값이 돌아오기 때문에 flat로 캐릭터를 분배합니다.
또 시뮬레이션 동작을 선택할 수 있도록 로고를 선언하고 장소로 나눈다.
이렇게 하면 손목시계가 완성된다.
이 동작에 관해서는 그림으로 표현할 수는 없지만 한번 만들어 보면 바로 알 수 있을 것 같아요.
바늘만 있으면 뭔지 몰라서 투명한 원으로 둘러 봤어요.
그리고 숫자가 있으면 시계 같을 수도 있어요.

좋은 웹페이지 즐겨찾기