using UnityEngine;
using System.Collections;


public class DeleteIt : MonoBehaviour
{
ย ย ย  [HideInInspector]
ย ย ย  public bool isFacingRight = true; //์บ๋ฆญํ„ฐ๊ฐ€ ์˜ค๋ฅธ์ชฝ์„ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋Š”๊ฐ€.

ย ย  [HideInInspector]
ย ย ย  public bool isJumping = false; //์ง€๋ฉด์— ์ฐฉ์ง€ํ•œ ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์ ํ”„์ค‘์ด๊ฑฐ๋‚˜ ๋‚™ํ•˜์ค‘ ํ•˜๋‚˜์ผ ๊ฒƒ์ž„. ์ง€๊ธˆ์˜ ์ƒํƒœ๊ฐ€ ์ ํ”„์ธ์ง€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ bool.

ย ย ย [HideInInspector]
ย ย ย  public bool isGrounded = false; //์ง€๋ฉด์— ์ฐฉ์ง€ํ•œ ์ƒํƒœ์ธ๊ฐ€?

ย ย ย  public float jumpForce = 250.0f; //์ ํ”„์˜ ํž˜
ย ย ย  public float maxSpeed = 4.0f; //์ด๋™์‹œ ์ตœ๊ณ  ์†๋„์˜ ๊ฐ’
ย ย ย  public PhysicsMaterial2D jumpMaterial; //์ ํ”„ ์ค‘ ์ขŒ์šฐ ๋ฒฝ์— ๋ถ€๋”›์ณค์„ ๋•Œ ๋ฏธ๋Œ์–ด์ ธ ๋‚ด๋ ค์˜ค๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋งˆ์ฐฐ๋ ฅ์ด 0์ธ ํ”ผ์ง ๋ฉ”ํ„ฐ๋ฆฌ์–ผ์„ ์ค€๋น„ํ•œ๋‹ค. ํ”ผ์ง ๋ฉ”ํ„ฐ๋ฆฌ์–ผ์€ ๊ทธ ์ปฌ๋ผ์ด๋”๊ฐ€ ๊ฐ€์ง€๋Š” ๋งˆ์ฐฐ๋ ฅ ๋ฐ˜๋ฐœ๋ ฅ ๋“ฑ์„ ์ง€์ •ํ•˜๋Š” ๊ฑฐ.

ย ย ย  public Transform groundCheck; //FixedUpdate์˜ Physics2D.OverlapCircle()์—์„œ ์ง€๋ฉด ์ถฉ๋Œ์ฒดํฌ๋ฅผ ํ•  ์œ„์น˜. ์ฃผ๋กœ ๋ฐœ์ด๊ฒ ์ง€.
ย ย ย  public LayerMask groundLayers; //๋ฐœ๋กœ ๋””๋”œ ์ˆ˜ ์žˆ๋Š” ์ง€ํ˜•์˜ ๋ ˆ์ด์–ด.ย  Physics2D.OverlapCircle()์—์„œ ์ถฉ๋Œ์ฒดํฌ๋ฅผ ํ•ด์„œ ๋ฐœ ๋ฐ‘์— ๋ฐ”๋‹ฅ์ด ๋ฐœ๋กœ ๋””๋”œ ์ˆ˜ ์žˆ๋Š” ์ง€ํ˜•์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋ณ„ํ•จ.

ย ย ย  private float groundCheckRadius = 0.2f; //Physics2D.OverlapCircle() ์—์„œ groundCheck๋กœ๋ถ€ํ„ฐ ์ด ๊ฐ’๋งŒํผ์˜ ๋ฐ˜๊ฒฝ์— ๋ฐ”๋‹ฅ์ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ.
ย ย ย  private Animator anim; //์• ๋‹ˆ๋ฉ”์ดํ„ฐํ˜•์˜ anim์„ ์–ธํ•˜๊ณ ...

ย ย ย  void Awake()
ย ย ย  {
ย ย ย ย ย ย ย  anim = this.GetComponent<Animator>(); //๊ทธ ๋ณ€์ˆ˜ ์•ˆ์— ์• ๋‹ˆ๋ฉ”์ดํ„ฐ ์ปดํฌ๋„ŒํŠธ ๋ณ€์ˆ˜๋ฅผ ๋„ฃ๊ณ .
ย ย ย  }


ย ย ย  // ์ด ์‚ฌ๋žŒ์€ ์ฐฉ์ง€ ํŒ๋ณ„์„ 2๊ฐœ๋กœ ๋‚˜๋ˆ ๋†จ์Œ. y์ถ• ์ด๋™์ด ์—†๋Š”๊ฐ€์™€ ์ง€์ •ํ•œ ์ง€๋ฉด ๋ ˆ์ด์–ด์— ๋ฐœ์ด ๋‹ฟ์•˜๋Š”๊ฐ€ 2๊ฐœ์ž„.

ย ย ย  // Update๋ฌธ์—์„œ๋Š” y์ถ• ์†๋„๋ฅผ ํ™•์ธํ•ด์„œ isGround๋ฅผ true๋กœ ๋งŒ๋“ค๊ณ .

ย ย  ย // FixedUpdate๋ฌธ์—์„œ๋Š” ๋ฐœ ์œ„์น˜์—์„œ ์ง€ํ˜•๋ ˆ์ด์–ด์™€์˜ ์ถฉ๋Œ ์œ ๋ฌด๋กœ isGround๋ฅผ ๋งŒ๋“ฌ.

ย ย ย  // ๊ทผ๋ฐ ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์ง€ํ˜• ๋ ˆ์ด์–ด๋ฅผ ๋”ฐ๋กœ ๋—€ ๊ฑด ์•ž์œผ๋กœ ์žˆ์„ ์›€์ง์ด๋Š” ํ”Œ๋žซํผ์„ ์œ„ํ•ด์„œ์ธ์ง€ ์•„๋‹˜ y์ถ• ์†๋„์™€ ํ•จ๊ป˜ ์ด์ค‘ ์ฒดํฌ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ธ์ง€, ์•„๋‹˜ ik๋ฅผ ์œ„ํ•ด์„œ์ธ์ง€ย ๋ชจ๋ฅด๊ฒ ์Œ.

ย ย ย  // ๋‘˜ ์ค‘ย ํ•œ๊ตฐ๋ฐ์„œ ์ฒดํฌ๋ฅผ ์•ˆํ•ด๋„ ๋‹น์žฅ์€ ์ž‘๋™ํ• ๊ฑฐ์ž„. ์ฐจ์ฐจ ์„ค๋ช…์ด ๋‚˜์˜ค๊ฒ ์ง€.


ย ย ย  void Update()
ย ย ย  {

ย ย ย ย ย ย ย  if (GetComponent<Rigidbody2D>().velocity.y == 0) //y์ถ•์œผ๋กœ ์›€์ง์ด์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฑด ์ง€๋ฉด์— ๋‹ฟ์•„์žˆ๋‹ค๋Š” ๋œป.
ย ย ย ย ย ย ย ย ย ย ย  isGrounded = true;

ย ย ย ย ย ย ย  if (Input.GetButtonDown("Jump")) //์ ํ”„ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ..
ย ย ย ย ย ย ย  {
ย ย ย ย ย ย ย ย ย ย ย  if (isGrounded == true) //์ง€๋ฉด์— ๋ถ™์€ ์ƒํƒœ์—์„œ ์ ํ”„๋ฒ„ํŠผ์„ ๋ˆŒ๋ €๋‹ค๋ฉด...
ย ย ย ย ย ย ย ย ย ย ย  {
ย ย isJumping = true; //์ ํ”„์ค‘์œผ๋กœ ๋ฐ”๊พผ๋‹ค.
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย  this.GetComponent<Rigidbody2D>().velocity = new Vector2(GetComponent<Rigidbody2D>().velocity.x, 0); //๋ฆฌ์ง€๋“œ๋ฐ”๋””์˜ y์ถ• ์†๋„๋ฅผ 0์œผ๋กœ ๋ฐ”๊ฟˆ. ์•„๋งˆ ๋‹ค์Œ ๋ผ์ธ์—์„œ y์ถ•์œผ๋กœ ํž˜์„ ๊ฐ€ํ• ๋•Œ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์œผ๋ ค๊ณ  ์ด๋Ÿฐ ๊ฑฐ ๊ฐ™๋‹ค. ์‚ฌ์‹ค ๋‹น์žฅ์€ ํ•„์š”์—†๊ณ , ๋‚˜์ค‘์— ์œ„์•„๋ž˜๋กœ ์›€์ง์ด๋Š” ํ”Œ๋žซํผ ๊ฐ™์€ ๊ฑฐ ์œ„์— ์˜ฌ๋ผํƒ€ ์žˆ์„๋•Œ๋‚˜ย ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์Œ.ย ํ‰์†Œ์—” ์–ธ์ œ๋‚˜ ์ฐฉ์ง€ํ–ˆ์„ ๋•Œ y์ถ• ์ด๋™ ์†๋„๋Š” 0์ผ๊ฑฐ์ž–์Œ.
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย  this.GetComponent<Rigidbody2D>().AddForce(new Vector2(0, jumpForce)); //x์ถ•์€ ๋†”๋‘๊ณ  y์ถ•์œผ๋กœ๋งŒ jumpForce๋งŒํผ ํž˜์„ ๊ฐ€ํ•จ.
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย  this.anim.SetTrigger("Jump"); //์• ๋‹ˆ๋ฅผ ์ ํ”„ ์ƒํƒœ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
ย ย ย ย ย ย ย ย ย ย ย  }
ย ย ย ย ย ย ย ย ย ย ย  else if (isJumping == false) //์ง€๋ฉด์— ๋‹ฟ์ง€ ์•Š์•˜๋Š”๋ฐ ์ ํ”„์ค‘์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฑด ๋‚™ํ•˜์ค‘์ด๋ผ๋Š” ๋œป. ๋‚™ํ•˜์ค‘ ์ ํ”„๋ฒ„ํŠผ์„ ๋ˆŒ๋ €๋‹ค๋ฉด...
ย ย ย ย ย ย ย ย ย ย ย  {
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย  isJumping = true; //์ ํ”„์ค‘์œผ๋กœ ๋ฐ”๊พผ๋‹ค.
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย  this.GetComponent<Rigidbody2D>().velocity = new Vector2(GetComponent<Rigidbody2D>().velocity.x, 0);
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย  this.GetComponent<Rigidbody2D>().AddForce(new Vector2(0, jumpForce));
ย ย ย ย ย ย ย ย ย ย ย  }
ย ย ย ย ย ย ย  }
ย ย ย  }


ย ย ย ย  //FixedUpdate๋ฌธ์—์„œ ์ฐฉ์ง€ ์ฒดํฌ๋Š” ๋ฐœ์œ„์น˜์—์„œ Physics2D.OverlapCircle๋กœ ์ปฌ๋ฆฌ์ „ ์ฒดํฌ๋ฅผ ํ•ด์„œ groundLayer๋กœ ์ง€์ •ํ•œ ๋ ˆ์ด์–ด ๋„˜๋ฒ„์˜ ๋ฌผ์ฒด์— ๋‹ฟ์•˜์„ ๋•Œ ์ฐฉ์ง€ํ–ˆ๋‹ค๊ณ  ํŒ์ •ํ•จ.

ย ย ย ย  //๊ทผ๋ฐ ์บ๋ฆญํ„ฐ์™€ ์ง€ํ˜•์ด ์–ด์ฐจํ”ผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ถฉ๋Œ๋˜๊ฒŒ ๋งˆ์Šคํฌ๋ฅผ ์žก์•„๋†“์•˜๋‹ค๋ฉด ์ด๊ฒŒ ํฐ ์˜๋ฏธ๊ฐ€ ์—†์Œ. ์ฒดํฌํ•˜๋‚˜๋งˆ๋‚˜ ๋•…์— ๋‹ฟ์•„์„œ ์บ๋ฆญํ„ฐ๋Š” ๋ฉˆ์ถฐ์„คํ…Œ๊ณ  ๊ทธ๋Ÿผ y๊ฐ’์ด 0์ด ๋˜์–ด์„œ Update๋ฌธ์—์„œ๋„ isGround ๋ฅผ true๋กœ ๋งŒ๋“ค๊ฑฐ๊ธฐ ๋–„๋ฌธ์ž„.

ย ย ย ย ย //๊ทธ๋ž˜์„œ ์บ๋ฆญํ„ฐ์™€ ๋ฐ”๋‹ฅ์˜ ๋ ˆ์ด์–ด๊ฐ€ ์ถฉ๋Œ๋˜๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด ์ด๊ฑด ํฐ ์˜๋ฏธ๋Š” ์—†์„ํ…๋ฐ... ๊ทธ ์ฑ…์˜ ๊ฐ•์ขŒ๋ฅผ ๋ณด์ง€ ์•Š์•„์„œ ์•ž์œผ๋กœ ์–ด๋–ป๊ฒŒ ์“ฐ์ผ์ง„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Œ.


ย ย ย  void FixedUpdate()
ย ย ย  {
ย ย ย ย ย ย ย  isGrounded = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, groundLayers); //์ง€์ •ํ•œ groundCheck.position์—์„œ groundCheckRadius ๋ฐ˜๊ฒฝ์•ˆ์— groundLayers ๋ ˆ์ด์–ด์™€ ์ถฉ๋Œํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€. ์ถฉ๋Œํ–ˆ๋‹ค๋ฉด ์ง€๋ฉด์— ์ฐฉ์ง€ํ•œ๊ฑธ๋กœ ๋ณธ๋‹ค. groundCheck.position์€ ์•„๋งˆ ๋ฐœ ์œ„์น˜์ผ๊ฑฐ์ž„.ย 
ย ย ย ย ย ย ย  PhysicsMaterial2D material = this.gameObject.GetComponent<CircleCollider2D>().sharedMaterial;

ย ย ย ย ย ย ย  if (isGrounded)
ย ย ย ย ย ย ย  {
ย ย ย ย ย ย ย ย ย ย ย  isJumping = false; //์บ๋ฆญํ„ฐ๊ฐ€ ๋•…์— ์ฐฉ์ง€ํ–ˆ๋‹ค๋ฉด jump์ค‘์ด ์•„๋‹ˆ๋‹ˆ isJumping์„ false๋กœ ๋งŒ๋“ฌ.
ย ย ย ย ย ย ย  }


ย //์ ํ”„ ์ค‘ ๋ฒฝ์— ๋‹ฟ์•˜์„ ๋•Œ ๋ฏธ๋Œ์–ด์ ธ๋‚ด๋ ค์˜ค๋„๋ก ํ”ผ์ง ๋ฉ”ํ„ฐ๋ฆฌ์–ผ์„ ๋ฐ”๊ฟ”์คŒ.

ย //์ด๊ฑธ ๋ฐ”๊ฟ”์ฃผ์ง€ ์•Š์œผ๋ฉด ์ ํ”„ ํ›„ ๋ฒฝ์— ๋ถ™์–ด์„œ ๊ณ„์† ๋ ˆ๋ฒ„๋ฅผ ๋ฒฝ์ชฝ์œผ๋กœ ํ–ฅํ•˜๊ฒŒ ํ•˜๋ฉด ์บ๋ฆญํ„ฐ๊ฐ€ ๋•…์œผ๋กœ ๋‚ด๋ ค์˜ค์ง€ ์•Š๊ณ  ๋ฒฝ์— ๋ถ™์–ด์žˆ์„๊ฑฐ์ž„.

ย ย ย ย ย ย ย  if (isGrounded == true && material == this.jumpMaterial) //์ฐฉ์ง€ํ•œ ์ƒํƒœ์—์„œ ํ”ผ์ง ๋ฉ”ํ„ฐ๋ฆฌ์–ผ์ด ์ ํ”„์ƒํƒœ์˜ friction์ด 0์ธ ๋ฉ”ํ„ฐ๋ฆฌ์–ผ์ด๋ผ๋ฉด...

ย ย ย ย ย ย ย  {

ย ย ย ย ย ย ย ย ย ย ย  CircleCollider2D collision = this.gameObject.GetComponent<CircleCollider2D>();

ย ย ย ย ย ย ย ย ย ย ย  collision.sharedMaterial = null; //๋ฉ”ํ„ฐ๋ฆฌ์–ผ์„ย null๋กœ ๋งŒ๋“ค๋ฉด ๊ธฐ๋ณธ friction์ด ์ ์šฉ๋˜์–ด์„œ ์ง€๋ฉด์— ๋งˆ์ฐฐ๋ ฅ์ด ์ƒ๊ฒจ์„œ ์บ๋ฆญํ„ฐ๊ฐ€ ๋ฏธ๋Œ์–ด์ง€์ง€ ์•Š์„๊ฑฐ์ž„.
ย ย ย ย ย ย ย ย ย ย ย  collision.enabled = false;
ย ย ย ย ย ย ย ย ย ย ย  collision.enabled = true; //๊ทผ๋ฐย ์ด ๋‘์ค„์€ ์™œ์ด๋Ÿฌ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Œ. ํ•œ๋ฒˆย ๊ป๋‹ค๊ฐ€ ์ผœ์•ผ ๋ฉ”ํ„ฐ๋ฆฌ์–ผ์ด ์ž‘๋™ํ•œ๋‹ค๋Š” ์†Œ๋ฆฐ๊ฐ€? ๋‚˜๋„ ์•ˆํ•ด๋ด์„œ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ ๋‚˜์ค‘์— ํ•œ๋ฒˆ ์ง์ ‘ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ธฐ ๋ฐ”๋žŒ.
ย ย ย ย ย ย ย  }

ย ย ย ย ย ย ย  else if (isGrounded == false && this.gameObject.GetComponent<CircleCollider2D>().sharedMaterial == null)ย  //์ ํ”„๋‚˜ ๋‚™ํ•˜์‹œ ํ”ผ์ง๋ฉ”ํ„ฐ๋ฆฌ์–ผ์ด jump์šฉ์œผ๋กœ ๋ฐ”๋€Œ์ง€ ์•Š์•˜๋‹ค๋ฉด..
ย ย ย ย ย ย ย  {

ย ย ย ย ย ย ย ย ย ย ย  // ์ ํ”„์ค‘์ผ๋• friction์„ 0์œผ๋กœ ๋งŒ๋“ค์–ด์„œ ๋ฌด์กฐ๊ฑด ๋ฏธ๋Œ์–ด์ง€๊ฒŒ ํ•จ. ๊ทธ๋ž˜์„œ ์ ํ”„์ค‘ ๋ฒฝ์— ๋ถ€๋”›์ณค์„๋•Œ ๊ทธ๋ƒฅ ์•„๋ž˜๋กœ ๋ฏธ๋Œ์–ด์ ธ ๋‚ด๋ ค์˜ค๊ฒŒ ํ•˜๋ ค๊ณ ...

ย ย ย ย ย ย ย ย ย ย ย  CircleCollider2D collision = this.gameObject.GetComponent<CircleCollider2D>();ย 
ย ย ย ย ย ย ย ย ย ย ย  collision.sharedMaterial = this.jumpMaterial; //์บ๋ฆญํ„ฐ์˜ ํ”ผ์ง ๋ฉ”ํ„ฐ๋ฆฌ์–ผ์„ jumpMaterial๋กœ ๋ฐ”๊ฟ”์ค˜์„œ ๋งˆ์ฐฐ๊ฐ’์„ 0๋กœ ๋งŒ๋“ค์–ด ์คŒ.
ย ย ย ย ย ย ย ย ย ย ย  collision.enabled = false;ย 
ย ย ย ย ย ย ย ย ย ย ย  collision.enabled = true;
ย ย ย ย ย ย ย  }

ย ย ย ย ย ย ย  try //try{}์•ˆ์— ์žˆ๋Š” ๋ฌธ์„ ์‹คํ–‰ํ•˜๋‹ค๊ฐ€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด catch(){}๋กœ...
ย ย ย ย ย ย ย  {
ย ย ย ย ย ย ย ย ย ย ย  float move = Input.GetAxis("Horizontal"); //๋ฐฉํ–ฅํ‚ค ์ž…๋ ฅ...
ย ย ย ย ย ย ย ย ย ย ย  GetComponent<Rigidbody2D>().velocity = new Vector2(move * maxSpeed, GetComponent<Rigidbody2D>().velocity.y);ย  // ์บ๋ฆญํ„ฐ์˜ x์ถ• ์†๋„๋Š” ๋ฐฉํ–ฅํ‚ค์˜ ์ž…๋ ฅ๋ฐฉํ–ฅ * ์บ๋ฆญํ„ฐ์˜ ์†๋„, y์ถ• ์†๋„๋Š” ์ž์‹ ์˜ y์ถ• ์†๋„ ๊ทธ๋Œ€๋กœ...
ย ย ย ย ย ย ย ย ย ย ย  //this.anim.SetFloat("Speed", Mathf.Abs(move));

ย ย ย ย ย ย ย ย ย ย ย  if ((move > 0.0f && isFacingRight == false) || (move < 0.0f && isFacingRight == true)) //๋ฐฉํ–ฅํ‚ค ์ž…๋ ฅ์ด 0๋ณด๋‹ค ํฌ๋‹ค๋Š” ๊ฑด ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์›€์ง์ธ๋‹ค๋Š” ๋œป์ž„. ๊ทผ๋ฐ isFacingRight๊ฐ€ false๋กœ ์™ผ์ชฝ์„ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋‹ค๋ฉด ์บ๋ฆญํ„ฐ๋ฅผ ๋’ค์ง‘์–ด์„œ ๋ฐฉํ–ฅ์„ ์ œ๋Œ€๋กœ ๋ณด๊ฒŒ ํ•œ๋‹ค. ๋ฐฉํ–ฅํ‚ค ์ž…๋ ฅ์ด ์™ผ์ชฝ์ผ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€.
ย ย ย ย ย ย ย ย ย ย ย  {
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย  Flip();
ย ย ย ย ย ย ย ย ย ย ย  }
ย ย ย ย ย ย ย  }

ย ย ย ย ย ย ย  catch (UnityException error)
ย ย ย ย ย ย ย  {
ย ย ย ย ย ย ย ย ย ย ย  Debug.LogError(error.ToString());
ย ย ย ย ย ย ย  }
ย ย ย  }

ย ย ย  void Flip()ย  //์บ๋ฆญํ„ฐ์˜ ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ์„ ๋’ค์ง‘์–ด์ค€๋‹ค.
ย ย ย  {
ย ย ย ย ย ย ย  isFacingRight = !isFacingRight; //isFacingRight๊ฐ€ true๋ฉด false๋กœ false๋ฉด true๋กœ...
ย ย ย ย ย ย ย  Vector3 playerScale = transform.localScale;ย ย  //playerScale๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์บ๋ฆญํ„ฐ์˜ ์Šค์ผ€์ผ๊ฐ’์„ ํ• ๋‹นํ•จ.
ย ย ย ย ย ย ย  playerScale.x = playerScale.x * -1; //์Šค์ผ€์ผ์˜ x๊ฐ’์„ +-1๋กœ ๋ฐ”๊ฟ”๋ณด๋ฉด ์ขŒ์šฐ๋กœ ๋ฐ˜์ „๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋ ๊ฑฐ์ž„. ํ˜„์žฌ์˜ ํ”Œ๋ ˆ์ด์–ด scale์˜ x๊ฐ’์— -1์„ ๊ณฑํ•ด์„œ 1์ผ๋• -1๋กœ -1์ผ๋• 1๋กœ ๋ฐ”๊ฟ”์คŒ.
ย ย ย ย ย ย ย  transform.localScale = playerScale; //์œ„์˜ ๋ฐ˜์ „๋œ ์Šค์ผ€์ผ๊ฐ’์„ ์บ๋ฆญํ„ฐ ์Šค์ผ€์ผ์— ๋Œ€์ž…ํ•จ.
ย ย ย  }
}

ย