일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 기초
- 다이나믹 프로그래밍
- 골드메탈
- 단계별로 풀어보기
- 자료 구조
- 6월
- c++
- todolist
- 수학
- 코딩 테스트
- 유니티 심화과정
- 개인 프로젝트 - 런앤건
- 백준
- 4월
- 1월
- 5월
- 개인 프로젝트
- 게임 엔진 공부
- 2025년
- 코딩 기초 트레이닝
- 7월
- 유니티
- 프로그래머스
- C/C++
- 2023년
- 2월
- 2022년
- 입문
- 2024년
- 3월
- Today
- Total
기록 보관소
[Unity/유니티] 기초-2D 종스크롤 슈팅: 원근감있는 무한 배경만들기[B33] 본문
개요
유니티 입문과 독학을 위해서 아래 링크의 골드메탈님의 영상들을 보며 진행 상황 사진 또는 캡처를 올리고 배웠던 점을 요약해서 적는다.
현재는 영상들을 보고 따라하고 배우는 것에 집중할 것이며, 영상을 모두 보고 따라한 후에는 개인 프로젝트를 설계하고 직접 만드는 것이 목표다.
https://youtube.com/playlist?list=PLO-mt5Iu5TeYI4dbYwWP8JqZMC9iuUIW2
유니티 강좌 기초 채널 Basic
유니티 개발을 처음 시작하시는 입문자 분들을 위한 기초 채널. [ 프로젝트 ] B00 ~ B12 (BE1) : 유니티 필수 기초 B13 ~ B19 (BE2) : 2D 플랫포머 B20 ~ B26 (BE3) : 2D 탑다운 대화형 RPG B27 ~ B37 (BE4) : 2D 종스크롤
www.youtube.com
2D 종스크롤 슈팅: 원근감있는 무한 배경 만들기[B33]
1. 준비하기
- 추가로 맵 크기에 맞춰 Main Camera의 Size를 6으로 넓혀주었다. 그에 맞춰 Spawn Point Group, Border, Border Bullet도 변경해준다.
- 카메라는 그대로 두고, 배경만 움직여서 플레이어가 움직이는 것처럼 보이게 만드는 것이다.
//Background 스크립트 파일
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Background : MonoBehaviour {
public float speed;
void Update() {
Vector3 curPos = transform.position;
Vector3 nextPos = Vector3.down * speed * Time.deltaTime;
transform.position = curPos + nextPos;
}
}
2. 스크롤링
//Background 스크립트 파일
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Background : MonoBehaviour {
public float speed;
public int startIndex;
public int endIndex;
public Transform[] sprites;
float viewHeight;
void Awake() {
viewHeight = Camera.main.orthographicSize * 2;
}
void Update() {
Vector3 curPos = transform.position;
Vector3 nextPos = Vector3.down * speed * Time.deltaTime;
transform.position = curPos + nextPos;
if (sprites[endIndex].position.y < viewHeight * (-1)) {
//스프라이트 이동
Vector3 backSpritePos = sprites[startIndex].localPosition;
Vector3 frontSpritePos = sprites[endIndex].localPosition;
sprites[endIndex].transform.localPosition = backSpritePos + Vector3.up * viewHeight;
//인덱스 초기화
int startIndexSave = startIndex;
startIndex = endIndex;
endIndex = (startIndexSave - 1 == -1) ? sprites.Length - 1 : startIndexSave - 1;
}
}
}
- 내려간 맵을 카메라 밖에서 아래에서 위로 올림으로써 계속 맵이 무한으로 나오도록 만든다.
- Camera.orthographicSize : orthographic 카메라 Size
3. 패럴렉스
- 패럴렉스(Parallax) : 거리에 따른 상대적 속도를 활용한 기술
- 패럴렉스 기법은 플랫포머에서도 많이 사용함
'유니티 프로젝트 > 2D 종스크롤 슈팅' 카테고리의 다른 글
[Unity/유니티] 기초-2D 종스크롤 슈팅: 텍스트 파일을 이용한 커스텀 배치 구현[B35] (0) | 2022.03.08 |
---|---|
[Unity/유니티] 기초-2D 종스크롤 슈팅: 최적화의 기본, 오브젝트 풀링[B34] (0) | 2022.03.06 |
[Unity/유니티] 기초-2D 종스크롤 슈팅: 아이템과 필살기 구현하기[B32] (0) | 2022.03.04 |
[Unity/유니티] 기초-2D 종스크롤 슈팅: UI 간단하게 완성하기[B31] (0) | 2022.03.03 |
[Unity/유니티] 기초-2D 종스크롤 슈팅: 적 전투와 피격 이벤트 만들기[B30] (0) | 2022.03.02 |