ํ๋ก์ ํธ ์๋ฆฌ์ฆ๋ ์์ ํ๋ก์ ํธ๋ ํฐ ํ๋ก์ ํธ๋ ๊ณ ๋ฑํ๊ต ์ดํ์ ํ๋ ํ๋ก์ ํธ์ ๋ํด ๊ธฐ์ ํ๋ ์๋ฆฌ์ฆ๊ฐ ๋ ๊ฒ ๊ฐ๋ค. ์ด๋ฒ์ ๊ธฐ์ ํ ํ๋ก์ ํธ๋ ๋ฐฉํ ๋ ์ ๋ํฐ ์์ง์ ์กฐ๊ธ์ด๋๋ง ์ตํ๋ณด๋ ค๊ณ ์ ํํ 1~2์ฃผ ๋์ ๊ณต๋ถํ๊ณ ๊ฐ๋จํ ๊ฒ์์ ์ถ์ํ๋ ๊ณผ์ ์ ์ ์ด๋ณด๊ณ ์ ํ๋ค.
์ ๋ํฐ ๊ณต๋ถ๋ฅผ ํ๋๋ฐ๋ ๊ณจ๋๋ฉํ๋์ ์ ํ๋ธ๊ฐ ๋งค์ฐ ํฐ ๋์์ด ๋์์ผ๋ฉฐ ๊ธฐ๋ณธ ํ
์ค์ณ๋ ๋ชจ๋ธ๋ง, ์ ๋๋ฉ์ด์
๊ฐ์ ๊ฒฝ์ฐ๋ ์ด๋ถ์ ํ๋ฝ์ ๋งก๊ณ ์ฌ์ฉํ์์ ๋ฐํ๋ค.
์๋ง ๋๋ถ๋ถ์ ๊ฐ๋ฐ์๊ฐ ํ์ฌ Unity
ํน์ Unreal
์ ์ฌ์ฉํ ๊บผ๋ผ ๋ฏฟ์ด ์์ฌ์น ์๋๋ค. ๋ฌผ๋ก EA๊ฐ์ ๋ณ์ข
์ Frostbite
๊ฐ์ ํฌ์ํ ์์ง์ ๋ง๋ค์ด์ ์ฌ์ฉํ๊ธฐ๋ ํ์ง๋ง...
์ ๋ํฐ๊ฐ ๊ทธ๋งํผ ๊ฐ๊ด๋ฐ๋ ์ด์ ๋ ์ ๋ง ์ฐ๊ธฐ ๊ฐ๋จํ๋ค.
ํ์ ์์ ํ ๊บผ์ง๋ง C#์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํด์ ์ฝ๋ฉ์ ํ๋๋ฐ ๊ทธ๋งํผ ํธํ ์๊ฐ ์์๋ค.
ํ์๋ C๊ณต๋ถ๋ ์ ๋ง ๊ธฐ์ด์ ์ธ๊ฒ๋ง ์ ๊น ํด๋ดค๊ณ , ํ๋ฌผ๋ฉฐ C#์ ๋ค๋ค๋ณธ์ ๋ ์์๋๋ฐ ์ด๋งํผ ์ฝ๋ ์ง๊ธฐ๋ ์ฝ๊ณ ๊ฐ๋
์ฑ๋ ์ข์ผ๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ ๋ํฐ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๊ฐ ์ดํด ๊ฐ๋ค.
๊ฐ์คํ๊ณ ๋ณธ๊ฒฉ์ ์ผ๋ก ์ ๋ํฐ ์์ง์ ์ฌ์ฉํด๋ณด๊ธฐ ์ํ ๊ธ์ ์ ์ด๋ณด๊ฒ ๋ค.
์ ๋ํฐ ํ๋ธ๋ ๋ง ๊ทธ๋๋ก ํ๋ธ๋ค. ๊ฑฐ์ณ๊ฐ๋ ์๋ฏธ? ํตํฉ ์ค์น๊ธฐ? ๋ญ ๊ทธ๋ฐ๊ฑฐ๋ค.
ํ๋ธ์ ์ฒ์ ๋ค์ด๊ฐ๊ฒ ๋๋ฉด
์ด๋ฐ์ฉ์ผ๋ก ์ค์น ๋ฒ์ ๊ณผ ์ข
๋ฅ๋ฅผ ์ ํํ ์ ์๋ค.
์ ๊ธฐ ์๋ ์ถ๊ฐ๋ฅผ ๋๋ฌ์ ์์ ์๊ฒ ๋ง๋ ํด (์๋๋ก์ด๋,์๋์ฐ,๋ฆฌ๋
์ค ๋ฑ๋ฑ) ์ ์ค์นํ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํด์ ์ค์นํ๋ค๋ฉด ์งํํด์ผ ํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด์ฃผ๋ฉด ๋๋๋ฐ,
๊ธฐ์ด ์ค์ ์ ๋๋๋ค๋ฉด ์ด๋ฐ์ฉ์ผ๋ก ์งํํ ์ ์๋ ํ๋ก์ ํธ๊ฐ ๋์ค๊ฒ ๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ์ด์ ํด๋ฆญ์ ํ๊ณ ๋ค์ด๊ฐ๋ณด๋ฉด
์ด๋ฐ ํกํ ๊ณต๊ฐ์ด ๋์ฌ ๊ฒ์ด๋ค.
๊ทธ๋ผ ์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก ์ ๋ํฐ๋ฅผ ๋ค๋ฃฐ ์ค๋น๊ฐ ๋ ๊ฒ์ด๋ค.
์ ๋ํฐ๋ C# ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ ๊ฒ์ ๊ฐ๋ฐ ์์ง์ด๋ค
ํ๋ก์ ํธ ํด๋์ ์ ๋ณด๋ฉด ์ด๋ฐ์ฉ์ผ๋ก ์คํฌ๋ฆฝํธ๋ผ๊ณ ์ ํ ๊ฒ ๋์์๋๋ฐ,
์ด๋ฐ์ฉ์ ์คํฌ๋ฆฝํธ๋ค์ ๊ฐ ์ค๋ธ์ ํธ์ ๋ถ์ฌํด์ ์ฐ๋๊ฒ ๊ธฐ๋ณธ ๋ฒ ์ด์ค๋ค.
ํ๋ก์ ํธ๋ฅผ ํ ๋ ๊ฐ์ฅ ์ฒ์ ๋ง๋ ๊ฒ์ Player์ค๋ธ์ ํธ์๋ค.
ํํ๋ Capsule Collider๋ก ์ก์์ผ๋ฉฐ, Rigidbody๋ ์ฐ๋ฆฌ๊ฐ ์ผ์์ํ์์ ํํ ์ ํ๋ ์ค๋ ฅ์ด๋ผ๋ ์ค์ ์ด๋ค. ์ด๋ ํํธ์ ๋ถ๋ถ์ ๋ฌด๊ฒ๊ฐ ์ ๋ ๊ฒ ๋๋๊ฐ, ์ด๋ ๋ถ๋ถ์ ์ค๋ ฅ๋๋ ํ๋ ์ด์ด๊ฐ ์์ง์ผ๋ ์ด๋ ์ขํ์ ๊ฐ์ ๋ฉ์ถฐ๋์ด ์์ง์์ ์์ํ๊ฒ ํ๋ค๋ ๊ฐ์ ๋ํ ๋ชจ๋ ์ค์ ์ RigidBody ์์ ๋์์๋ค.
Rigidbody๋ฅผ ๋ค ๋ง๋ ํ์๋ ์ ๋๋ฉ์ด์ ์ค์ ์ ํด์ฃผ์๋ค.
์ ๋๋ฉ์ด์ ์ค์ ์ ์ํด์ฃผ๋ฉด ๊ทธ๋ฅ ์ ์ํ๋ก ์ญ ์์ง์ ๋๋ค
์ ๋๋ฉ์ด์
์ ๊ฒ์์ ๋ชฐ์
๋๋ฅผ ๋์ฌ์ฃผ๋ ์์ฃผ ์ค์ํ ์ญํ ์ ํ๋ค๋ ๊ฑธ ๋ง๋ค๋ฉด์ ๊นจ๋ฌ์๋ค. ๊ฑท๋ ๋ชจ์
์ด ์๋ค๋ฉด ๊ฒ์์ด ์ ๋ง ๋ฐ๋ฐํด์ง๋ค. ๋ง์น ๊ทธ๋ฅ ์ฌ๋ฌผ์ ๋ฏธ๋ ๋๋์ด๋๊น...
๋ฌผ๋ฐ ๋ชจ๋ธ๋ง์ชฝ์ ๋ด ๋ถ์ผ๋ ์ ๋ฌธ์ด ์๋์ง๋ง, ํ์
์ ์ค์์ฑ์ ์ฌ๊ธฐ์ ํ๋ฒ ๋ ๊นจ๋ซ๋ ๊ฒ ๊ฐ๋ค.
์ ๋๋ฉ์ด์
์์ฒด๊ฐ ์ฒ์ ๋ค๋ค๋ณด๋ ๋ถ์ผ์์ผ๋, ์์ ์ธ๊ธํ๋ ์ ํ๋ฒ ๊ณจ๋๋ฉํ๋ ๊ฐ์ข์ ์์ฃผ ์์ธํ ๋์์์ผ๋ ์ ๋ํฐ ๊ฐ๋ฐ์ ๊ด์ฌ์์ผ์ ์ด๋ณด๋ผ๋ฉด ๊ผญ ํ๋ฒ์ฏค ๋ณด๋ ๊ฒ์ ์ถ์ฒํ๋ค.
์ ๋๋ฉ์ด์
์ ์ด ์ธ ๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋๋๋ค.
๊ธฐ๋ณธ์ํ(Idle) / ๊ฑท๋์ํ(Walk) / ๋ฐ๋์ํ(Run)
๊ฐ ํ๋ ์๋น ๋ฐ๋๋ ๋ชจ์ต์ ์ ๊ธฐ ๋ณด์ด๋ ํ์ ํ์ดํ๋ฅผ ํด๋ฆญํด๋ณด๋ฉด
์ด๋ฌํ ํ์์ผ๋ก ์ ์กฐ์ ํ ์ ์๊ฒ๋ ๋์์์ผ๋ฉฐ, Condition์ ๋์์๋ฏ์ด ๊ฐ ํ๋ผ๋ฉํฐ(IsRun, IsWalk)๋ฑ์ boolean๊ฐ์ ์ค์ ํ์ฌ ๋์๋ง๋ค ์ ์ ํ ์ ๋๋ฉ์ด์
์ ์ถ๋ ฅํ ์ ์๋๋ก ํด๋์๋ค.
๊ทธ ์ธ์๋ Idle๋ธ๋ญ/Walk๋ธ๋ญ/Run๋ธ๋ญ ๊ฐ๊ฐ Transition ์ ์ค์ ํ ์ ์๊ฒ๋์ด ์๋ฅผ ๋ค๋ฉด ๋ฌ๋ฆฌ๊ณ ์ถ์๋๋ ์ํ๊ฐ Walk์์ Run์ด ๋๋์ง, Idle์์ Run์ด ๋๋์ง, ๊ทธ๋ฆฌ๊ณ Run์์ ๊ธฐ๋ณธ์ํ์ธ Idle์ด ๋๋ ค๋ฉด ์ด๋ค ๋์์ ์ทจํ ํ ๋ช์ด ๋๋ ์ด๋ฅผ ๋ฃ๋์ง ๋ฑ ๋ชจ๋ ์ ๋๋ฉ์ด์
์ ๊ด๋ จ๋ ๋์๋ค์ ์ด ์ธ์คํํฐ์์ ์ด๋ฃจ์ด์ง๋ค๊ณ ๋ณด๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
์ด๋ ๊ฒ ์ธ์คํํฐ๋ฅผ ๋ค ์ง๊ณ ๊ฐ ๋์์ ํธ๋ ์ง์ ๊ณผ ์ปจ๋์ , bool๊ฐ์ ๋ชจ๋ ์ ์ค์ ํด์ฃผ๊ณ ๋๋ฉด ์ฝ๋์ Scene์ ๋ง๋ค ์ค๋น๊ฐ ๋ ๊ฒ์ด๋ค.
์ด์ ์๋ ๋งํ๋ฏ์ด ์ ๋ํฐ๋ ๋งค์ฐ ๊ฐํธํ ๋ฌผ๋ฆฌ์์ง ํด์ด๋ค.
์์์ ์ค๋ธ์ ํธ์ ์ ๋๋ฉ์ด์
์ค์ ์ ํด์ฃผ์์ผ๋ ์ด์ ์ฝ๋ฉ์ผ๋ก ๊ฐ๋ค๋ง ์ง์ ํด์ค ํ ๊ทธ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฉ๊ธ ๋ง๋ Player ์ค๋ธ์ ํธ์ ๋ถ์ฌํด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
AudioSource audio;
Rigidbody rigid;
Vector3 vec;
Animator ani;
C#์คํฌ๋ฆฝํธ์์ ์ฐ๊ฒ ๋ ์ธ๋ถ ์์๋ค์ ์ด๋ ๊ฒ ๋๋ค.
์์คํ
์ฝ๋ ์
, ์ ๋ค๋ฆญ ์ฝ๋ ์
, ์ ๋ํฐ์์ง, ์ ๋ํฐ์์ง scene management ์ด๋ ๊ฒ ๋๋๋ฐ ์ ์ธ ๊ฐ๋ ๋ณดํต ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ด๊ฐ์ง๋ง ์ด๋ฐ scene management๊ฐ ๋ค์ด๊ฐ๋ ์ด์ ๋ฅผ ์ ์ ์๋ค.
๊ทธ ์ธ ํจ๊ณผ์์ ์ฃผ๊ธฐ ์ํ ์ค๋์ค, ์๊น ์ค์ ํ rigidbody์ ์ค๋ ฅ๊ฐ์ ์ค์ ํด์ฃผ๊ธฐ ์ํ rigid, ํ๋ ์ด์ด๋ฅผ ์์ง์ด๊ธฐ ์ํ ๋ฒกํฐ์ ์๊น ์ค์ ํด์ฃผ์๋ ์ ๋๋ฉ์ด์ ๋ฑ์ ๊ฐ์ ธ์ค๋ฉด ๋๋ค.
void Awake()
{
ani = GetComponentInChildren<Animator>();
rigid = GetComponent<Rigidbody>();
audio = GetComponent<AudioSource>();
}
์ฒ์์ ์์ํ ๋๋ Awake๋ก ์์ํ๊ฒ ๋๋ค. ์ฒ์์ผ๋ก ๋ฑ๋ก๋ ์ฝ๋์ด๋ ๋งํผ ์ปดํฌ๋ํธ์ ์์์ ๋งํ๋ ์ค๋์ค, ์ค๋ ฅ, ์ ๋๋ฉ์ด์ ๋ค์ GetComponent๋ก ๊ฐ์ ธ์ค๋ฉด ๋๋ค.
void FixedUpdate()
{
float h = Input.GetAxisRaw("Horizontal");
float v = Input.GetAxisRaw("Vertical");
bool wDown = Input.GetButton("Walk");
Vector3 vec = new Vector3(h, 0, v).normalized;
transform.position += vec * speed * (wDown ? 0.3f : 1f) * Time.deltaTime;
ani.SetBool("IsRun", vec != Vector3.zero);
ani.SetBool("IsWalk", wDown);
transform.LookAt(transform.position + vec);
}
์ฌ๊ธฐ์๋ถํฐ ๋ณธ๊ฒฉ์ ์ธ ์ฝ๋ฉ์ ์์์ด๋ค.
๊ณ ๋ฑํ๊ต๋ ์งฐ๋ ํ์ด๊ฒ์๋ณด๋ค ํจ์ฌ ๊ฐ๋จํด๋ณด์ด๋ ์ฝ๋์ง๋ง, ์ด ์ฝ๋๋ ๋ง์ ๊ฑธ ๋ดํฌํ๊ณ ์๋ค. ์ผ๋จ float h ์ v๋ฅผ ์ ์ธํด์ค์ผ๋ก์จ horizontal๊ณผ vertical (์ฝ๊ฒ ๋งํ๋ฉด ๊ฐ๋ก์ธ๋ก) ๋ฅผ ์ง์ ํด์ฃผ๊ณ , getbutton์ด ๋๋ฆฌ๋ฉด ์ ๋๋ฉ์ด์
์ ์ํ๋ฅผ walk๋ก ๋ฐ๊พผ๋ค ๋ญ ์ด๋ฐ ๋ป์ด๋ค.
3์ฐจ์ ๋ฒกํฐ๋ฅผ ์ธ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฒกํฐ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ฃผ๋๋ฐ ์ฐ๋ฆฌ์ ํ๋ ์ด์ด๋ ํ๋๋ก ๋ ์๊ฐ ๊ฒ์ด ์๋๊ธฐ์ (h,0,v)๋ง ์ฌ์ฉํ๋ฉด ๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์ normalized ์ธ๋ฐ,
์ฌ๊ธฐ์ ๋ง์ฝ์ ์ ๋ฐ์ฉ์ผ๋ก x๊ฐ๊ณผ y๊ฐ๋ฐ์ ์๋ค๋ฉด ์์์์ ๋์ฐฉ๊น์ง ๊ฐ๋๋ฐ ๋ฌด์จ ์๋ฅผ ์ฐ๋ 2๊ฐ๋ฐ์ ๋ค์ง ์์ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ฝ์ ๋๊ฐ์ ์ผ๋ก ๊ฐ๋ก์ง๋ฌ ๊ฐ๋ค๋ฉด?
๊ทธ๋ ๋ค.
ํผํ๊ณ ๋ผ์ค
์ ๊ณต์์ ๋ฐ๋ผ์ ๋๊ฐ์ ์ผ๋ก ๊ฐ๋ค๋ฉด โ2์ ๊ฐ์ผ๋ก ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋ ๊ฐ๋ณด๋ค ํจ์ฌ ๋ ๋น ๋ฅด๊ฒ ๋์ฐฉ ์ง์ ์ ๋์ฐฉํ ์ ์๋ค. ๊ทธ๋ ๊ฒ์ ๊ฒ์์์ ๋น์ฐํ ๋ถ๊ณตํํ๊ฒ ์ ์ฉ๋ ์ ์์ผ๋ฉฐ, ๋์ ๋ฐ๋ผ์ ๊ธฐ๋ก์ ์ํฅ์ ๋ผ์น๊ฑฐ๋ ์ฌ๊ฐํ ๋ฒ๊ทธ๋ฅผ ๋ผ์น ์ ์๊ธฐ์ ๋๊ฐ์ ์ ๊ฐ์ 1๋ก ๋ง๋ค์ด์ฃผ๋ .normalized๋ฅผ ๋ถ์ด๋๊ฑธ ๊ถ์ฅํ๊ณ ์๋ค.
void OnTriggerEnter(Collider other)
{
if (other.tag == "Jelly")
{
count++;
audio.Play();
other.gameObject.SetActive(false);
manager.GetItem(count);
}
else if (other.tag == "End")
{
if(count == manager.TotalJelly)
{
SceneManager.LoadScene("Level"+(manager.level+1).ToString());
}
else
{
SceneManager.LoadScene("Level"+manager.level.ToString());
}
๊ทธ ์ธ์ ์์์ฒ๋ผ ์ ค๋ฆฌ์ ์๋ฅผ ์ธ์ด์ฃผ๋ count๋ณ์๋ ํจ๊ณผ์ ์ถ๊ฐ๋ฅผ ์์ฑํ๋ฉด ๋๋ค.
์๊น ๋งํ๋ SceneManager๊ฐ ์ด๋์ ์ฐ์ด๋๋ฉด, ์ ๋ํฐ๋ scene์ ํตํด ๊ฒ์์ ์ ์ํ๋ค.
์๋ฅผ ๋ค์ด 1Scene์ด ๋๋๋ฉด, 2Scene์ ๋ก๋์์ผ์ ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๊ฒ ํ๋ ํ์์ธ๋ฐ ์ด๋ ํ์ํ๊ฒ SceneManager์ธ ๊ฒ์ด๋ค.
๋ง์ฝ ๋ด๊ฐ ์ง์ ํด์ค TotalJelly๋ ๋ณ์๋ count (ํ๋ ์ด์ด๊ฐ ๋จน์ ์ ค๋ฆฌ์ ๊ฐฏ์) ๊ฐ ๊ฐ๋ค๋ฉด, ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๊ฒ๋ ์ค์ ์ ํด์ค ๊ฒ์ด๋ค. ์ฐธ๊ณ ๋ก Scene ์ด๋ฆ์ ๋น์ฐํ Level 1~10์ด๊ธฐ์ "Level"์ด๋ ๋ฌธ์์ด+์ซ์๋ฅผ ํตํด ๊ฐ์ ๋ง์กฑํ ์ ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๊ฒ ์ค์ ํด ๋์๋ค.
void OnCollisionEnter(Collision collision)
{
if(collision.gameObject.tag=="Floor")
{
isJump = false;
}
}
๋ํ ๋ง์ฝ Floor(๋ฐ๋ฅ) ์ด๋ผ๋ ์ค๋ธ์ ํธ์ ๋ฟ๊ฒ ๋ ์, isJump์ bool๊ฐ์ false๋ก ๋ง๋ค์ด ๋ฌดํ ์ ํ๋ฅผ ๋ฐฉ์งํ๋ ๋ฑ ์ด๋ฐ ์ฉ์ ์ฝ๋ฉ์ด ๊ฐ๋ฅํ๋ค.
Scene์ ํธ์๋ฅผ ์ํด ์ธ ๊ฐ์ง๋ก ๋๋ ์ ์ ์ํ๊ฒ ๋์๋ค.
1 . ์ด๊ธฐ ์ธํฐํ์ด์ค ์ ์
2 . ๋จ๊ณ ์ ํ ์ธํฐํ์ด์ค ์ ์
3 . ๊ฒ์ Scene ์ ์
ํ๋ฉด์์ ์๋ ค๋ณด์ด๋ ์ฌ์ง๋ค์ ์ค๋งํธํฐ์์์ ํด์๋๋ฅผ ๋ง์ถ๊ธฐ ์ํด ๊ฐ์ ๋ก ์ค์ ํ ๊ฒ์ด๋ ํฌ๊ฒ ์ ๊ฒฝ ์ธ ํ์๋ ์์๋ค.
๋จผ์ ์ด๊ธฐ ์ธํฐํ์ด์ค๋ ์ฌ์ฉ์๊ฐ ๋ค์ด์์ ๋ ๋ณด๋ ์ฒซ ํ๋ฉด์ด๋ค.
๊ฐ๋จํ๊ฒ Start์ Exit ๋ฒํผ๋ง ๋ง๋ค์ด์ฃผ๊ธฐ๋ก ํ๋ค.
๋์ถฉ ํ์ ๋ง๋ ๋ค ์ Start๋ฒํผ๊ณผ Exit ๋ฒํผ์ OnclickEvent๋ง ๊ฑธ์ด์ฃผ๋ฉด ๋๋ค.
์๊น๋ ๋งํ์ง๋ง ์ ๋ํฐ ์์ง์ ์ต๊ณ ์ ์ฅ์ ์ ์ฌ์ฉ์ ํธ๋ฆฌํจ์ด๋ค
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class MenuButton : MonoBehaviour
{
public void OnClickButton()
{
SceneManager.LoadScene("Main");
}
}
์ด๋ ๊ฒ ๋ฒํผ์ ํด๋ฆญํ์ ๋ scene์ ํ์ ์ค์ ํด์ฃผ๋ ๊ฒ ๋ง์ผ๋ก๋ ์ด๊ธฐ ์ธํฐํ์ด์ค ๋ง๋ค๊ธฐ๊ฐ ๋๋ฌ๋ค. ์ด์ ์ Main์ด๋ผ๋ ๋จ๊ณ ์ ํ ์ธํฐํ์ด์ค๋ก ๊ฐ๋ณด์.
๊ฐ ๋จ๊ณ๋ง๋ค ์์ ํ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก 1๋ฒ ๋ฒํผ์ ๋๋ฅด๋ฉด Scene1์ ๋ก๋ํ๊ณ , 2๋ฒ ๋ฒํผ์ ๋๋ฅด๋ฉด Scene2๋ฅผ ๋ก๋ํ๋ฉด ๋๋ค.
๋ง์ง๋ง์ผ๋ก ๊ฒ์ ๋ด Scene๋ง ๊ตฌํ์ ํด์ฃผ๋ฉด ๋๋๋ฐ,
๊ฒ์ ๋ด Scene์ ์๊น ๋ง๋ค์๋ ํ๋ ์ด์ด์ ์ ค๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ๊ฒฐ์น์
๊ทธ๋ฆฌ๊ณ ์ด๋ฐ์ฉ์ ์ ํ๋ฒํผ๊ณผ ์กฐ์ด์คํฑ, ๊ทธ๋ฆฌ๊ณ ์ ค๋ฆฌ ์นด์ดํธ๋ฅผ ๋ง๋ค์ด์ฃผ๋ฉด ๋๋ค.
์ ค๋ฆฌ ์นด์ดํธ๋?
์ ค๋ฆฌ ์นด์ดํธ๋ ์๊น ๋งํ๋ TotalJelly์ ์ฌ์ฉ์๊ฐ ๋จน์ Jelly๋ฅผ ๊ด๋ฆฌํด์ฃผ๊ณ ์ธํฐํ์ด์ค์ ์ถ๋ ฅํด์ฃผ๋ ์ฝ๋๋ค. TotalJelly๊ฐ ์ฌ์ฉ์๊ฐ ๋จน์ Jelly์ ๊ฐ์์ง ๋น๊ตํด์ฃผ๋ GameManager๋ฅผ ๋ง๋ค์ด ์ธํฐํ์ด์ค์ ๋ํ๋ด์ฃผ๋๋ฐ, ์ด GameManager๋ ํน๋ณํ ํ์ฒด๊ฐ ์๋ ์ค๋ธ์ ํธ๊ฐ ์๋ ๊ทธ๋ฅ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์๋์ํค๊ธฐ ์ํ ํฌ๋ช
์ค๋ธ์ ํธ๋ผ๊ณ ์๊ฐํ๋ฉด ํธํ๋ค.
์ด๋ฐ์ฉ์ผ๋ก ์ด๊ธฐ ์ ํ ์ธํฐํ์ด์ค, ๋จ๊ณ ์ ํ ์ธํฐํ์ด์ค, ๊ทธ๋ฆฌ๊ณ Game Scene์ ์ ์ํ๋ฉด ๊ฒ์ ์ ์์ด ๋ค ๋๋ฌ๋ค!
๋ฒจ๋ก๊ทธ์ ๋ชจ๋ ์ ์ ๊ณผ์ ์ ์ฃ๋ค ํ๋ํ๋ ๋ด์ ์๋ ์๋ค๋ณด๋, ๊ฐ๋ฐํ๋๋์ ์ด๋ ค์ ๋ ์ ์ ๋ช๊ฐ์ง ๊ธฐ์ ํด ๋ณผ๊น ํ๋ค.
๋จผ์ ์ฒซ๋ฒ์งธ๋ก ๋น๋ํ๋๋ฐ์ ๋ฌธ์ ์ ์ด ์๋ค.
์ด๋ฐ์ฉ์ผ๋ก Mono์ IL2CPP ๋น๋๊ฐ ๊ฐ๋ฅํ๋ฐ, ์ด๊ฒ ๊น๋ฑํ๋ฉด ์ถ์๋ฅผ ๋ถ๊ฐํ๊ฒ ๋ง๋ค ์๋ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ์คํฌ๋ฆฝํ ๋ฒก์๋ ์ ํ์ ์ ํ๋๊ฒ ์ค์ํ๋ค.
๋๋ฒ์งธ๋ก๋ ์ ๋๋ชน์ ๋ฃ๋ ๊ณผ์ ์ ์๋ค.
์ง๊ธ ์งํํ ํ๋ก์ ํธ๋ ์ด๋๊น์ง๋ ์์ต์ฑ์ด ๋ชฉ์ ์ด ์๋, ์ ๋ํฐ ํด์ ํ๋ฒ ์ฌ์ฉํด๋ณด๊ณ ์ตํ๋ ๋ฐ ์ค์ ์ด ์์๊ธฐ ๋๋ฌธ์, ๊ตฌ๊ธ ์ ๋๋ชน์ด ์ด๋ค์ฉ์ผ๋ก ์๋ํ๊ณ ์์ต๊ตฌ์กฐ๊ฐ ์ด๋ป๊ฒ ๋๋์ง ํ๋ฒ ์ฌ์ฉํด๋ณด๊ธฐ ์ํด ๋ฃ์ผ๋ ค ํ๋ค.
using GoogleMobileAds.Api;
using UnityEngine;
public class GoogleAdsManager : MonoBehaviour
{
private static InterstitialAd interstitial;
private void Start()
{
// ์ ๋ฉด ๊ด๊ณ ๋ฅผ ๋ณด์ฌ์ค ์ค๋น๋ฅผ ํฉ๋๋ค.
//๊ด๊ณ ๋ฅผ ๋
ธ์ถ์ํค๊ธฐ ์ ์ ๋จผ์ ์๋ ํจ์๋ฅผ ํธ์ถํด๋ฌ์ผ ํ๊ธฐ ๋๋ฌธ์ `Start` ํจ์์์ ์คํํฉ๋๋ค.
MobileAds.Initialize(initStatus =>
{
RequestInterstitial();
});
}
private static void RequestInterstitial()
{
#if UNITY_ANDROID
string adUnitId = "ca-app-pub-5718885378756835/9857595294";
#elif UNITY_IOS
string adUnitId = "ca-app-pub-5718885378756835/9857595294";
#else
string adUnitId = "unexpected_platform";
#endif
// ๊ด๊ณ ๋ฅผ ๋ณด์ฌ์ค ์ค๋น๋ฅผ ํฉ๋๋ค.
interstitial = new InterstitialAd(adUnitId);
AdRequest request = new AdRequest.Builder().Build();
interstitial.LoadAd(request);
}
// ์ธ๋ถ ์ปดํฌ๋ํธ๊ฐ ํธ์ถํ๋ ๋ฉ์๋
public static void Show()
{
// ๋ง์ฝ ๊ด๊ณ ๋ฅผ ๋ณด์ฌ์ค ์ค๋น๊ฐ ๋์๋ค๋ฉด...
if (interstitial.IsLoaded())
{
// ๊ด๊ณ ๋ฅผ ๋
ธ์ถ์ํต๋๋ค
interstitial.Show();
}
}
}
๊ฒฐ๊ตญ ์ธํฐ๋ท์์ ๊ตฌํ ์์ค ์ฝ๋๋ฅผ ์กฐ๊ธ ๋ณํ์์ผ์ ๊ตฌ๊ธ ์ ๋๋ชน์ ์ ์ฉ์ํฌ ์๋ ์์์ผ๋...
์ฌ๊ธฐ๊น์ง ์ ์ฉ์ํค๋ ๊ณผ์ ์ด ๊ฒฐ์ฝ ์ํ์น ์์๋ค. ๊ทธ ์ฒซ๋ฒ์งธ ์ด์ ๋ก๋..
ํ ์คํธ ์ ๋ ์์ด๋
์ ๋๋ชน์ ์ ์ฉ์ํค๋ ค๋ฉด ๋จผ์ ํ
์คํธ ์ ๋ ์์ด๋๋ฅผ ์ ์ฉ์ํค๋ ๊ณผ์ ์ด ๊ผญ! ํ์ํ๋ค.
๋ง์ฝ์ ํ
์คํธ ์ ๋ ์์ด๋๋ฅผ ์ ์ฉ์ํค์ง ์๋๋ค๋ฉด ์ ๋๋ชน ์ธก์์ ๋งคํฌ๋ก๋ก ์์ฌํ๊ณ ๊ณผ๊ฐํ๊ฒ ์ ์ง๋ฅผ ๋๋ ค๋ฒ๋ฆด์๋ ์๊ธฐ์ ์ถ์ ์ ํ
์คํธ ์ ๋ ์์ด๋๋ฅผ ํ๋ฒ์ฉ ๊ผญ ์ ์ฉ์์ผ๋ณผ ํ์์ฑ์ด ์๋ค. ๋๋ฒ์งธ ์ด์ ๋ก๋
์ ๋๋ชน ์ ์ฑ
์ด ์ ๋๋ชน ์ ์ฑ ์ด ๋ง๋์๋๊ฒ ํญ์ ๋ณํด์ ์ ๋จน์๋ค. ๋ณดํต ์ ๋๋ชน์ ์ฒ์ ์ ์ฉ์ํค๋ ์ฌ๋๋คํํ ๋ ์ฝ๋๋ฅผ ์ฐพ์๋ณด๊ณ , ์ข ์ดํดํ ๋ค์ ์์ ํด๋ณผ ํ์์ฑ์ด ์๋๋ฐ, ์ ๋๋ชน ์ ์ฑ ์ด ์์๋ก ๋ฐ๋๋ ๋ฐ๋์ ๊ฑฐ์ 1๋ ๋ ์๋๊ฒ ์์ฑํ ์ฝ๋๋ค์ด ์ฃ๋ค ๋ฌด์ฉ์ง๋ฌผ์ด ๋ ๊ฒฝ์ฐ๋ ์์ด์ ์ ํํ ๋ง๋ ์ ๋๋ชน ์ ์ฉ ์ฝ๋ ์ฐพ๊ธฐ๊ฐ ๋งค์ฐ ํ๋ค์๋ค.
์ ๋ํฐ๋ ๋์๊ฒ ์๋ก์ด ๊ฒฝํ์ ์ ์ฌํด์ฃผ์๋ค.
๋ง์ ํด์ด ์ด๋ ๊ฒ ํธํ ์ค ๋ชฐ๋๋๋ฐ, ์ค๋ธ์ ํธ๋ฅผ ์ง์ ํด์ฃผ๊ณ ๊ทธ ์์ ๊ฐ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ฉ์์ผ์ ์ฝ๋ฉํ๋๊ฒ ์ด๋ ๊ฒ๊น์ง ๊ฐํ๊ฐ ์๋ก์ธ ์ค์ ๋ชฐ๋๋ค.
๋ฐฉํ๋ 2์ฃผ์ ๋ ์๊ฐ์ ๋ด์ ๊ฐ๊ฐํ ํ๋ ํ๋ก์ ํธ์ง๋ง, ํฅํ์ ๊ฒ์ ๊ฐ๋ฐํ ์ผ์ด ์๋ค๋ฉด ์๋ง ์ด๋ฒ ๊ฒฝํ์ ํตํด ๋์ฑ ์ฑ์ฅํ ์ ์์ง ์๋ ์ถ๋ค.