유니티 상단 메뉴 -> Window -> Asset Store에서 에셋스토어에 접속할 수 있습니다. 물론 그냥 구글에 쳐도 나옵니다.
무료 에셋을 체크하면 편하게 볼 수 있습니다. 아래 Casual Game Sounds 에셋을 클릭하고 다운로드 합니다.
아까의 상단메뉴 Window -> Package Manager에서 다운받은 에셋들을 관리할 수 있습니다. Project에 쓸 에셋을 우측하단에 Import를 눌러 불러와줍니다.
그럼 이렇게 Project에 내가 Import한 에셋 폴더가 생깁니다.
이제 오디오를 재생할 오브젝트에 오디오 컴포넌트를 넣어줍니다.
저는 PlayerBall에 오디오 컴포넌트를 넣어주겠습니다.
Project에 있는 오디오 파일 중 하나를 AudioClip에 드래그 앤 드랍하거나, 우측 동그라미를 눌러 소스를 선택합니다.
Mute : 음소거
Play On Awake : 오브젝트 생성 시 바로 재생
Loop : 반복 여부
Volume : 볼륨
Play On Awake는 쓸 거 아니니까 꺼줍니다.
이제 소스코드에 오디오 컴포넌트를 가져오고, play() 함수로 오디오를 재생시키기만 하면 됩니다.
* 주의 : 오디오를 재생시키고, setAtive(false)로 오브젝트를 비활성화 시키면 소리가 안나옵니다. 오브젝트가 비활성화 되었기 때문입니다.
PlayBall 소스코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerBall : MonoBehaviour
{
Rigidbody rigid;
AudioSource audio; // 오디오 컴포넌트 변수 선언
public float jumpPower;
bool isJumping;
public int itemCount;
void Awake()
{
rigid = GetComponent<Rigidbody>();
audio = GetComponent<AudioSource>(); //초기화
jumpPower = 30;
isJumping = false;
itemCount = 0;
}
void FixedUpdate()
{
float x = Input.GetAxisRaw("Horizontal");
float z = Input.GetAxisRaw("Vertical");
Vector3 move = new Vector3(x, 0, z);
rigid.AddForce(move, ForceMode.Impulse);
}
void Update()
{
if (Input.GetButtonDown("Jump") && !isJumping)
{
isJumping = true;
rigid.AddForce(new Vector3(0, jumpPower, 0), ForceMode.Impulse);
}
}
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "Floor")
{
isJumping = false;
}
}
void OnTriggerEnter(Collider other) //Item 스크립트에 있던 onTrigger 함수를 PlayerBall 스크립트로 옮겼습니다.
{
if (other.tag == "Item")
{
itemCount++;
audio.Play(); //재생
other.gameObject.SetActive(false);
}
}
}
Item 소스코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Item : MonoBehaviour
{
public float rotateSpeed;
void Update() //Item 스크립트에서는 회전만 담당
{
transform.Rotate(Vector3.up * rotateSpeed * Time.deltaTime, Space.World);
}
}
결과
'유니티 3D기본(Roll A Ball)' 카테고리의 다른 글
19. 스테이지 이동 (0) | 2021.10.26 |
---|---|
18. 카메라 이동으로 플레이어 따라가기 (0) | 2021.10.26 |
16. 아이템 먹기 구현 (0) | 2021.10.24 |
15. 공중에 떠 있는 아이템 만들고 회전시키기 (0) | 2021.10.24 |
14. 점프 및 연속 점프 방지 (0) | 2021.10.24 |