반응형

장점: 창작한다는 생각에 매일 활력이 넘친다.

피드백이 매우 빠른 플랫폼이기 때문에 노력한 만큼 보상받는 느낌이 들어서 좋았다.

 

A.I.는 똑똑한 계산기로 생각하고 있다.

나보다 똑똑한 이를 아래두고 일 시키는것이 얼마나 즐거운 일인가?

 

음성, 각본, 그림까지 모두 A.I.가 처리해준다. 나는 선택만 할 뿐이다.

편집장이 된 느낌이여서 너무 좋다.

 

여기서 또 다른 즐거움은 학습이었다.

ChatGPT에게 대사에 적합한 이미지를 추천해달라고하면 
설명과 근거를 확실히 말해준다.

그 근거가 너무나 명확하기 때문에 납득이 가면서도 스스로의 부족함을 느끼고,
배움의 원동력이 되었다.

 

1분 미만의 영상이지만, 그 영상들을 만들면서 창작의 세계에 푹 빠져드는건 너무 즐거운 일이다.

짧게는 10분만에도 완성되기도하고 어설프지만.

 

작은 성공들이 하나하나 모이는것 같아서 너무 즐겁다.

조금 더 경험이 쌓여 기술력과 노련함으로 shorts가 아닌 영상도 제작해보고 싶은 생각이든다.

반응형

'자기개발 > 유튜브' 카테고리의 다른 글

2주차 유튜브 로그.  (0) 2024.03.02
반응형

안드로이드 스튜디오 gradle에서 Gson 라이브러리 등록하는 방법입니다.

 

- 안으로이드 스튜디오에서 라이브러리 추가 방법

1. 라이브러리 추가

2. 검색

com.google.code.gson:gson:2.8.7

3. 해당 버전 확인 후 OK

1. 아래 사이트 접속.

2. build.gradle 에 Dependency 추가

3. Project Structure에서 라이브러리 적용

-끝-

 


1. https://mvnrepository.com/artifact/com.google.code.gson/gson

2. 원하는 버전선택

Gson 버전선택

3. Build Tool(빌드 관리 프로그램)을 선택

4. build.gradle의 dependancies에 추가

5. File -> Proejct Structure 들어가기

6. Dependencies 탭-> app -> Gson 선택 -> 적용(apply) -> OK

7. 코드 작성해보기

@Test
public void toSJON() {
    Gson g = new Gson();
    Circle a = new Circle(10f, 20f, 40f);
    String json = g.toJson(a);
    Circle b = g.fromJson(json, Circle.class);
    assertTrue(10f == b.getX());
    assertTrue(20f == b.getY());
    assertTrue(40f == b.getRadius());
}
반응형
반응형

1. Board.cs 코드

using UnityEngine;
using System.Collections;

public class Board : MonoBehaviour {

	public int width;
	public int height;

	public int borderSize;
  	void Start () 
	{
		m_allTiles = new Tile[width,height];
		m_allGamePieces = new GamePiece[width,height];

		SetupTiles();
		SetupCamera();
	}
    
    	void SetupCamera()
	{
		Camera.main.transform.position = new Vector3((float)(width - 1)/2f, (float) (height-1) /2f, -10f);

		float aspectRatio = (float) Screen.width / (float) Screen.height;
		float verticalSize = (float) height / 2f + (float) borderSize;
		float horizontalSize = ((float) width / 2f + (float) borderSize ) / aspectRatio;

		Camera.main.orthographicSize = (verticalSize > horizontalSize) ? verticalSize: horizontalSize;
	}
}

2. Canvas, Image 추가하기

Hierachy에 Canvas와 Image를 추가하고, Canvas에 Image 개체를 위치시킵니다.(가장 오른쪽 그림 참고)

 

3. Canvas의 Camera 설정 하기

Hierachy에서 Canvas를 선택한다음 'Render Camera'의 설정값을 Main Camera로 설정합니다.

위 그림처럼 빨간 네모를 선택하세요.

 

4. 배경색 넣기

Canvas안에 있는 Image를 꽉찬 화면비율로 변경하고, 색을 지정합니다.

Hierachy에서 Image개체를 선택합니다.

Rect Transform에서 왼쪽에 위치한 'stretch'를 클릭하면 'Anchor Presets'창이 뜹니다.

가장 오른쪽 아래 있는 꽉채우기 를 선택하시면 됩니다.

 

그다음 Iamge의 색을 변경하기 위해 오른쪽 그림에 있는 빨간 네모쪽을 클릭하여 원하는 색으로 지정합니다.

 

5. 결과물

보기와 같이 중앙에 카메라가 위치하여 적절한 화면을 보입니다.


원리 이해하기

Main camera의 Projection이 Orthographic일 때를 기준으로 합니다.

(2D 게임은 주로 Orthographic 입니다.)

보드의 세로, 가로 크기에 따라 자동적으로 카메라가 적절히 세팅합니다.

보드의 타일 갯수상관없습니다.

5x10, 5x5, 10x5 각 크기에 맞추어 자동으로 세팅합니다.

 

카메라가 화면의 중심에 위치하는데 5개의 변수가 영향을 미칩니다.

Board.borderSize, Board.width, Board.height, Screen.width, Screen.height

Board.borderSize: 보드에서 화면까지의 여백의 크기

Board.width: 가로축 타일의 갯수

Board.height: 게로축 타일의 갯수

Screen.width: 게임 화면의 밑변

Screen.height: 게임 화면의 높이

1. Aspect ratio 구하기

Aspect Ratio(종횡비): 가로(Width)와 세로(Height)의 비율

종횡비: 화면 높이 / 화면 밑변

화면 밑변: 화면 높이 x 종횡비

화면 높이: orthographic 길이

 

카메라가 정중앙 위치하려면 화면(Screen)의 높이와 밑변의 반씩 되는 값만 있으면 될것 같지만,

메인 카메라의 위치를 Board 타일의 갯수에 따라 자동적으로 중앙에 위치하도록 합니다.

그래야 타일 양옆 위아래로 여백이 생겨서 안정감 있는 화면이 구성됩니다.

	void SetupCamera()
	{
		Camera.main.transform.position = new Vector3((float)(width - 1)/2f, (float) (height-1) /2f, -10f);
		float aspectRatio = (float) Screen.width / (float) Screen.height;
	}

width -1, height -1로 설정한 이유는, 배열이 0Base 이기 때문입니다.

높이와 밑변의 반값으로 x, y축 값을 지정합니다. (z 값은 -10을 디폴트 값으로합니다.)

2. 수직, 수평 orthographic 크기 구하기

void SetupCamera()
{
// --------------------------------생략---------------------------------------------------
	float verticalSize = (float) height / 2f + (float) borderSize;
	float horizontalSize = ((float) width / 2f + (float) borderSize ) / aspectRatio;
	Camera.main.orthographicSize = (verticalSize > horizontalSize) ? verticalSize: horizontalSize;
}

게임 화면이 세로 이기 때문에 verticalSize는 y축(height)의 절반 + 여백(borderSize)로 쉽게 구할 수 있습니다.

 

horizontal은 x축이 y축 보다 많은 10x5와 같은 경우에 사용됩니다.

border의 unit: board의 타일 1개로 정해집니다.

수직(vertical)

수평(horizontal)

 

반응형

'프로그래밍 > Unity' 카테고리의 다른 글

Grid - Puzzle Game in Unity 그리드 만들기  (0) 2022.10.18
간접등 만들기 - particular System  (0) 2022.01.03
씬 생성 및 이동  (1) 2020.05.15

+ Recent posts