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์๋ง ๋ฟ์์ผ ์๋ฆฌ๊ฐ ๋๊ฒ ์์ ํ ์ ์์๊น์?
other.name์ other.gameObject.name ์ผ๋ก ๋ฐ๊พธ๊ณ ์๋๋ฉด tag๋ layer๋ก ์ง์ ํด์ ์ฒ๋ฆฌํ์
๋ฐํ์ด๋ฆ์ด Item์ผ๋ก ๋ผ์์ด์ ๊ทธ๋ฐ๊ฑฐ๊ฐ์๋ฐ ๋ฐํ ๊ฒ์์ค๋ธ์ ํธ ์ด๋ฆ ์์ ํ์ธ์ - dc App