์ผ๋จ ๊ฐ์ฅ ๋จผ์ ์๊ฐ๋๋๊ฒ ๋ฐฐ๊ฒฝ, ์บ๋ฆญํฐ๋ผ์ ์๋ค๋ค์ ๋ง๋ค์ด์ฃผ๊ธฐ ์ํด์ ๋จผ์ , ์คํ๋ผ์ดํธ๋ฅผ ์ฐ์ด์คฌ์ต๋๋ค. ํฌ๋กฌ T-Rex ๊ฒ์์์ F12๋ฅผ ๋๋ฅด๊ณ ๋คํธ์ํฌ ๋จ์ ์ดํด๋ณด๋ฉด ์คํ๋ผ์ดํธ๋ฅผ ์ฐพ์ ์ ์๋ค๊ณ ํ๋๋ฐ, ์ ๋ ๋ชป์ฐพ์์ pixilart ์ฌ์ดํธ์์ ์ง์ ์ฐ์์ต๋๋ค ใ
๊ณต๋ฃก์ ๋ฌ๋ฆฌ๊ธฐ, ์๊ธฐ, ์ฃฝ์ 3๊ฐ์ง ์ํ๊ฐ ์์ด์ ์ด๋ฅผ ๊ฐ๊ฐ ์ฐ์ด์ฃผ๊ณ ๋ฐฐ๊ฒฝ์ ๊ตฌ๋ฆ์ด ์์ง๋ง ์ง๊ธ ๋น์ฅ ์ค์ํ ๊ธฐ๋ฅ์ด ์๋๋ผ์ ์ผ๋จ ๋์ถฉ ํ๋์ ์ฌ์ง ๊ฐ์ ธ๋ค ์ฌ์ฉํ๊ธฐ๋ก ํ๊ณ ๋ฐ๋ฅ๋ง ์ง์ ์ฐ์ด์คฌ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋๊น์ ์ ์ธ์ฅ๋ ๊ฐ์ด ์ฐ์ด์คฌ์ต๋๋ค. ์๋ ์ต๋ฃก๋ ์ฐ์ด์ผ ํ๋๋ฐ, ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ๋ง ๋ง๋๋ ๊ฒ ๋ชฉํ๋ผ์ ์ต๋ฃก์ ๋์ค์ ์ฐ์ด์ฃผ๊ฒ ์ต๋๋ค.
์, ๊ทธ๋ฆฌ๊ณ ์ด๊ฑฐ ์ฐ์ผ๋ฉด์ ํฌ๋กฌ T-Rex ๊ฒ์์ ์๊ธฐ ๊ธฐ๋ฅ์ด ์๋ ๊ฑฐ ์ฒ์ ์์์ต๋๋ค..
์ด ์คํ๋ผ์ดํธ๋ค์ ์ด์ฉํด์ ํ๋ ์ด์ด ๊ฒ์ ์ค๋ธ์ ํธ๋ฅผ ๋ง๋ค๊ณ ์ถฉ๋ ๊ตฌ์ญ์ ์ค์ ํ๊ณ ๊ฐ ์ํ์ ๋ฐ๋ฅธ ์ ๋๋ฉ์ด์ ์ ๋ง๋ค์ด ์คฌ์ต๋๋ค.
IDEL ์ ๋๋ฉ์ด์ | JUMP ์ ๋๋ฉ์ด์
RUN ์ ๋๋ฉ์ด์
Crouch Run ์ ๋๋ฉ์ด์
์์ ๋ฌ๋ฆฌ๋ค ์ฃฝ์ ์ํ์ ์์์ ๋ฌ๋ฆฌ๋ค ์ฃฝ์ ์ํ ์ ๋๋ฉ์ด์
์ฒ์์ ์๊ธฐ ์คํ๋ผ์ดํธ์ ๋์ด์ ์์๋ ์ํ์ ์คํ๋ผ์ดํธ ๋์ด๋ฅผ ๋ค๋ฅด๊ฒ ์๋ผ ์ ๋๋ฉ์ด์ ์ ๋ง๋ค์๋๋ ์๊พธ ๋ฐ์ด ์๋ ์์น๊ฐ ์๋ก ๋ฌ๋ผ์ ์์ฐ์ค๋ฌ์ด ์์ง์์ด ๋์ค์ง ์๊ธธ๋ ์๊ธฐ ์ ๋๋ฉ์ด์ ์ transform Property๋ฅผ ์ถ๊ฐํ์ฌ ํด๊ฒฐํ๋ ค๊ณ ํ์ต๋๋ค๋ง ์ด๊ฒ ์ ๋๋ฉ์ด์ ์ ์ ์ฉํ transform Property๋ ๊ณตํต์ผ๋ก ์ ์ฉ๋๋๋ผ๊ณ ์? ๊ทธ๋์ ๋์ด๋ฅผ ๋๊ฐ์ด ์๋ฅธ ์คํ๋ผ์ดํธ๋ฅผ ์๋ก ๋ง๋ค์ด์ ํด๊ฒฐํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด์ ์ ํ, ์๊ธฐ ๊ธฐ๋ฅ๋ ๊ตฌํํด์ฃผ์์ต๋๋ค.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
private Rigidbody2D rigid;
private Animator animator;
[SerializeField]
private float jumpSpeed;
private bool isGround = true;
void Start()
{
rigid = GetComponent<Rigidbody2D>();
animator = GetComponent<Animator>();
}
void Update()
{
Jump();
Sit();
}
void Jump()
{
if (Input.GetKeyDown(KeyCode.UpArrow) && isGround)
{
rigid.AddForce(Vector3.up * jumpSpeed, ForceMode2D.Impulse);
isGround = false;
animator.SetBool("isJump", true);
}
}
void Sit()
{
if (Input.GetKeyDown(KeyCode.DownArrow) && isGround)
{
animator.SetBool("isDown", true);
} else if (Input.GetKeyUp(KeyCode.DownArrow) && isGround)
{
animator.SetBool("isDown", false);
}
}
private void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.tag == "Foreground") {
isGround = true;
animator.SetBool("isJump", false);
}
}
}
๋ฐ๋ฅ์ ํ๋ํ๋ ๊ฒ์์ค๋ธ์ ํธํํ์ฌ ๋ง๋๋ ๋ฐฉ๋ฒ๋ง ์๋ ์ถ์๋๋ฐ ์ฐพ์๋ณด๋ ํ์ผ๋งต ๊ธฐ๋ฅ์ด๋๊ฒ ์๋๋ผ๊ณ ์? ๊ทธ๋์ ์ด ๊ธฐ๋ฅ์ ํ์ฉํด์ ์ฝ๊ฒ ๋ฐ๋ฅ์ ๋ง๋ค์ด์ฃผ๊ณ ๋ฌดํ ์คํฌ๋กค๋งํ์ฌ ๋ฌดํ๋๋ก ๋ฌ๋ฆฌ๋ ๋ฏํ ๋๋์ ์ฃผ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์ T-Rex ๊ฒ์๋ ๋ฐ๋ฅ์ ์บ๋ฆญํฐ๋ณด๋ค ํฝ์ ํฌ๊ธฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ Scale๋ก ํฌ๊ธฐ๋ฅผ ์ข ์๊ฒ ๋ง๋ค์์ต๋๋ค. ๋, ์ถฉ๋ ๊ตฌ์ญ์ ์๋์ชฝ์ ์ฃผ์ด ๊ฒ์์ฒ๋ผ ๋ ์๋ฅผ ๊ฑท๋๋ฏํ ๋๋์ ์ฃผ์์ต๋๋ค.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Foreground : MonoBehaviour
{
[SerializeField]
private float moveSpeed = 7f;
void Update()
{
transform.position += Vector3.left * moveSpeed * Time.deltaTime;
if (transform.position.x <= -23.5f)
{
transform.position = new Vector3(13.25f, transform.position.y, 0);
}
}
}
์ต์ข ๊ฒฐ๊ณผ๋ ๋ค์์ฒ๋ผ ๋ณด์ ๋๋ค.
'๊ฒ์๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Xcode, C++ ์ด๋ ์์ฑ์ ํธ์ถ ์๋ ๋ (1) | 2023.09.10 |
---|---|
BSP ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ ๋๋ค ๋งต ์์ฑ ใ ก๋ก๊ทธ๋ผ์ดํฌ (0) | 2023.08.07 |
๋ก๊ทธ๋ผ์ดํฌ ๋งต ์์ฑ ๋ฐฉ์ (0) | 2023.07.26 |
[0] ํฌ๋กฌ ๋ค์ด๋ ธ ๊ฒ์ (T-Rex ๊ฒ์) (0) | 2023.07.23 |