using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerActorDos : MonoBehaviour
{
ย ย public float m_fMoveConst = 1.0f;
ย ย public float m_fJumpConst = 1.0f;
ย ย public bool m_bIsGround = true;
ย ย Rigidbody2D rigid = null;
ย ย private void Awake()
ย ย {
ย ย ย ย rigid = this.gameObject.GetComponent<Rigidbody2D>();
ย ย }
ย ย void FixedUpdate()
ย ย {
ย ย ย ย if (Input.GetKey(KeyCode.LeftArrow))
ย ย ย ย {
ย ย ย ย ย ย this.gameObject.transform.Translate(new Vector3(-m_fMoveConst * Time.deltaTime, 0.0f, 0.0f));
ย ย ย ย }
ย ย ย ย if (Input.GetKey(KeyCode.RightArrow))
ย ย ย ย {
ย ย ย ย ย ย this.gameObject.transform.Translate(new Vector3(m_fMoveConst * Time.deltaTime, 0.0f, 0.0f));
ย ย ย ย }
ย ย ย ย if (Input.GetKeyDown(KeyCode.Space))
ย ย ย ย {
ย ย ย ย ย ย DoJump();
ย ย ย ย }
ย ย ย ย if (m_bIsGround == false && rigid.velocity.y <= 0.0f)
ย ย ย ย {
ย ย ย ย ย ย if (Physics2D.Raycast(this.transform.position, Vector3.down, 1.5f, 1 << 10))
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย m_bIsGround = true;
ย ย ย ย ย ย }
ย ย ย ย }
ย ย }
ย ย void DoJump()
ย ย {
ย ย ย ย if (m_bIsGround == false)
ย ย ย ย {
ย ย ย ย ย ย return;
ย ย ย ย }
ย ย ย ย rigid.AddForce(Vector2.up * m_fJumpConst, ForceMode2D.Impulse);
ย ย ย ย m_bIsGround = false;
ย ย }
}
๋ ์ด์บ์คํธ๋ก ์ฐฉ์ง ์ฌ๋ถ ํ์ธ ํ ๋ค์ ์ ํ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์๋๋ฐ
๋ฌธ์ ๊ฐ ์ ํ ์กฐ์๊ฐ์ด ๋ญ๊ฐ ์ข๊ตฌ๋ฆฐ ๋ฌธ์ ๊ฐ ์๋ค... ์คํ์ด์ค๋ฐ๋ฅผ ๊ดํดํด๋ ๋ ์ ๋ฟ์๋๋ฐ 0.1์ด ๊ฐ๋ ์ ํ๊ฐ ์๋๊ฑฐ๋ ํน์ ์ฝ๊ฐ ๋๋ ์ด๊ฐ ์๋ ๋๋?
๋๋ฒ๊น ์ผ์์ ์คํ์ด์ค๋ฐ ๋๋ ธ์๋ ๋ผ๋ ์กฐ๊ฑด์ ๋นผ๊ณ ์ ๋ฐ์ดํธ๋ฌธ์์ ๋๋ฆฌ๋ฉด ์ฐ์์ ์ผ๋ก ์ ํ๋ฅผ ์ ํ๋๋ฐ ์ฌ๋์ด ์กฐ์ํ๊ธฐ์ ์กฐ์๊ฐ์ด ๋๋ฌด ๊ตฌ๋ ค์ ๊ทธ๋ฐ๋ฐ ํด๊ฒฐ๋ฐฉ๋ฒ์ด ์์๊น?
๋์์ด๋ ์ธ๋ถ์ด๋ฅผ ์ด
transform.Dojump()
์ด๊ฒ ๋ฌด์จ๋ง์ ๋ฉ์๋์ transform์ด ์ด์บ๋ถ์?
Input์ด ๋ฒ๋ฒ ์ด๋ฉด Update๋ฌธ ์ฌ์ฉํด๋ผ ๊ฒ์ด์ผ
๋์ถฉ fixedUpdate๋ฅผ Update์ ๋ฐ๊พธ๊ธฐ๋ง ํด๋ ์๋ ๊บผ์ผ
์ค ์ฏ ํด๊ฒฐ๋๋ค ๊ณ ๋ง๋ค ๊ฒ์ด์ผ