이번시간에는 게임을 빌드 시켜 안드로이드 게임앱을 만들고 Player 에 터치 드레그 프로그램을 짜 보겠습니다
먼저 안드로이드 앱을 빌드하기위해선
안드로디드 스튜디오의 SDK Manager 와 자바 프로그램에 Jdk 가 필요 합니다.
두 프로그램을 다운받아 설치하고 그림과 같이
Edit ->Preferences -> External Tools 로 가서 연결합니다
자바프로그램은 꼭 환경변수 설정을 하셔야 됩니다
자바 환경변수 설정은 인터넷에 많이 나오니 참고 하시면 됩니다
그리고 각각 Sprite Renderer가 있는 오브젝트에 Sorting Layer를 붙힙니다
PC에서는 텍스쳐는 만든 순서 대로 해서 보이겠지만 스마트 기기에 들어가면 Layer 지정이 안되 있어 화면에 텍스쳐가 가릴지도 모릅니다
그림과 같이 Sorting Layers를 만듭니다
아래로 내려갈수록 텍스쳐 Layer가 위로 보이게 하는 것입니다
Player오브젝트를 선택하고 Sorting Layer를 Player로 합니다
Enemy 프리팹을 선택하여 Sorting Layer 를 Enemy 로 합니다
Explosion 프리팹을 선택하여 Sorting Layer effect 로 합니다
rocket 프리팹을 선택하여 Sorting Layer 를 Rocket로 합니다
스크립트를 생성하고 이름을 DragScript 라고 합니다
Player 에 연결하여 스마트 폰에서 손가락으로 touch 하고 drag 할수 있는 스크립트를 짭니다
DragScript
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DragScript : MonoBehaviour
{
float deltaX, deltaY;
Rigidbody2D rb;
bool moveAllowed = false;
// Use this for initialization
void Start ()
{
rb = GetComponent<Rigidbody2D>();
PhysicsMaterial2D mat = new PhysicsMaterial2D();
mat.bounciness = 0.75f;
mat.friction = 0.4f;
GetComponent<CircleCollider2D>().sharedMaterial = mat;
}
// Update is called once per frame
void Update ()
{
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
Vector2 touchPos = Camera.main.ScreenToWorldPoint(touch.position);
switch (touch.phase)
{
case TouchPhase.Began:
if (GetComponent<Collider2D>() == Physics2D.OverlapPoint(touchPos))
{
deltaX = touchPos.x - transform.position.x;
deltaY = touchPos.y - transform.position.y;
moveAllowed = true;
rb.freezeRotation = true;
rb.velocity = new Vector2(0, 0);
rb.gravityScale = 0;
GetComponent<CircleCollider2D>().sharedMaterial = null;
}
break;
case TouchPhase.Moved:
if (GetComponent<Collider2D>()==
Physics2D.OverlapPoint(touchPos)&& moveAllowed)
{
rb.MovePosition(new Vector2(touchPos.x - deltaX, touchPos.y - deltaY));
} //Player를 좌우로만 움직일경우 touchPos.y - deltaY 대신에 transform.position.y 을 넣는다
break;
case TouchPhase.Ended:
moveAllowed = false;
rb.freezeRotation = false;
rb.gravityScale = 2;
PhysicsMaterial2D mat = new PhysicsMaterial2D();
mat.bounciness = 0.75f;
mat.friction = 0.4f;
GetComponent<CircleCollider2D>().sharedMaterial = mat;
break;
}
}
}
}
DragScript를 Player 전투기에 붙힙니다
File -> Build Settings 를 엽니다
Android를 선택하고 Switch Platform을 클릭합니다
Game 씬을 드래그하여 Snenes In Build 에 집어 넣습니다
Player Settings 를 눌러 인스팩터 값을 수정합니다
Default Icon을 게임에 적합한 그림을 찾아 넣습니다 되도록 정사각형의 그림을 찾아넣고 Resolution and Presentation 에 그림과 같이 Landscape Right 와 Landscape Left를 체크 해제합니다
Other Settings 로 들어가서 Package Name을 변경합니다
설정이 끝나면 빌드를 눌러 압축 APK 파일이 생성되도록합니다
생성한 압축파일 아이콘이 각자에 압축프로그램에 따라 다를수 있습니다
저는 참고로 반디집을 깔아서 저렇게 나오네요 ㅎㅎ
각자 안드로이드 휴대폰에 파일을 넣고 실행시킵니다
'게임 만들기 강좌 > 유니티2D 슈팅게임 만들기' 카테고리의 다른 글
유니티 슈팅 게임 만들기 16_재시작 버튼 만들기 (0) | 2019.01.06 |
---|---|
유니티 슈팅 게임 만들기 15_총알 memory pool 만들기 (0) | 2019.01.05 |
유니티 슈팅 게임 만들기 14_게임시작 및 게임오버 텍스쳐 나타내기 (0) | 2019.01.04 |
유니티 슈팅 게임 만들기 13_게임매니져 및 점수 올리기 만들기 (0) | 2019.01.03 |
유니티 슈팅 게임 만들기 12_Player 이동제한 만들기 (0) | 2019.01.02 |