Roll a Ball์ด๋ผ๋Š” ํŠœํ† ๋ฆฌ์–ผ์„ ๋”ฐ๋ผํ•˜๋˜ ์ค‘์ธ๋ฐ ์‚ฌ์šด๋“œ ๋ถ€๋ถ„์—์„œ ์ž˜ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.


using System.Collections;

using System.Collections.Generic;

using UnityEngine;


public class PlayerBall : MonoBehaviour

{

ย  ย  public int itemCount;ย 

ย  ย  public float jumpPower;ย 

ย  ย  bool isJump;ย 

ย  ย  Rigidbody rigid;ย 

ย  ย  AudioSource audio;ย 


ย  ย  void Awake()

ย  ย  {

ย  ย  ย  ย  isJump = false;

ย  ย  ย  ย  rigid = GetComponent<Rigidbody>();

ย  ย  ย  ย  audio = GetComponent<AudioSource>();

ย  ย  ย  ย  audio.playOnAwake = false;

ย  ย  }


ย  ย  void Update()

ย  ย  {

ย  ย  ย  ย  if (Input.GetButtonDown("Jump") && !isJump)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  isJump=true;

ย  ย  ย  ย  ย  ย  rigid.AddForce(new Vector3(0, jumpPower, 0), ForceMode.Impulse);

ย  ย  ย  ย  }

ย  ย  }


ย  ย  void FixedUpdate()

ย  ย  {

ย  ย  ย  ย  float h = Input.GetAxisRaw("Horizontal");

ย  ย  ย  ย  float v = Input.GetAxisRaw("Vertical");

ย  ย  ย  ย  rigid.AddForce(new Vector3(h, 0, v), ForceMode.Impulse);

ย  ย  }


ย  ย  void OnCollisionEnter(Collision collision)

ย  ย  {

ย  ย  ย  ย  if (collision.gameObject.name == "Tester")

ย  ย  ย  ย  ย  ย  isJump = false;

ย  ย  }


ย  ย  void OnTriggerEnter(Collider other)

ย  ย  {

ย  ย  ย  ย  if (other.name == "Item")

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  itemCount++;

ย  ย  ย  ย  ย  ย  audio.Play();

ย  ย  ย  ย  ย  ย  other.gameObject.SetActive(false);

ย  ย  ย  ย  }

ย  ย  }

}


์œ„ ์Šคํฌ๋ฆฝํŠธ๋Š” player์— ์ ์šฉํ•˜๋Š” playerBall ์Šคํฌ๋ฆฝํŠธ์ธ๋ฐ Item์—๋งŒ ๋‹ฟ์•„์•ผ ํ•˜๋Š” ์†Œ๋ฆฌ๊ฐ€ ์ฒ˜์Œ์— Tester๋ผ๊ณ  ๋งŒ๋“ค์–ด๋‘” ๋ฐœํŒ ์œ„์— ๋–จ์–ด์ง€๋ฉด์„œ๋„ ๋ฐœ์ƒํ•˜๋”๋ผ๊ณ ์š”.


๊ทธ๋ž˜์„œย audio.playOnAwake = false;๋กœ ๊บผ๋‘๋ฉด ๋œ๋‹ค๊ณ  ํ•ด๋„ ์—ฌ์ „ํ•ด์„œ ์–ด๋–ป๊ฒŒํ•ด์•ผ Item์—๋งŒ ๋‹ฟ์•„์•ผ ์†Œ๋ฆฌ๊ฐ€ ๋‚˜๊ฒŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?