플레이어가 움직이는 동안 오디오를 재생하는 Unity 스크립트가 있습니다. 스크립트가 작동하고 있지만 문제가 하나 더 있습니다. 재생과 일시 중지 사이의 전환이 너무 길어서 오디오가 너무 어둡게 보일 수 있습니다. Unity3d - 재생과 일시 중지 사이의 전환시 오디오 거친 소리가납니다.
이
내 스크립트using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
public class PlayerController : MonoBehaviour {
Rigidbody playerRigid;
private Vector3 pindah;
public AudioSource audioSource;
public AudioClip audioClip;
public float lowPitchRange = .95f;
public float hiPitchRange = 1.05f;
void Awake() {
audioSource = GetComponent<AudioSource>();
audioSource.clip = audioClip;
float randomPitch = Random.Range (lowPitchRange, hiPitchRange);
audioSource.pitch = randomPitch;
}
// Use this for initialization
void Start() {
//mengambil komponen rigidbody player
playerRigid = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update() {
//untuk mendapatkan input dari virtual joystick button
float h = CrossPlatformInputManager.GetAxisRaw ("Horizontal");
float v = CrossPlatformInputManager.GetAxisRaw ("Vertical");
if ((h != 0f || v != 0f) && !audioSource.isPlaying) {
audioSource.Play();
} else {
audioSource.Pause();
}
//memindah posisi player sesuai input yang didapat
pindah = new Vector3 (h, 0.0f, v);
playerRigid.velocity = pindah;
}
}
보통 ag 이런 종류의 부드러운 전환을 편집 된 매개 변수의 현재 값 즉이 경우 source.volume에서 시작하는 것이 좋습니다. 그렇지 않으면 볼륨이 0 또는 1 인 전환의 시작 값으로 순간적으로 점프하므로 FadeSound와 IncreaseSound간에 너무 빨리 전환 할 경우 팝이 표시됩니다. 새 충돌을 시작하기 전에 충돌하는 coroutine을 중지해야 할 수도 있습니다. –
의견을 보내 주셔서 감사합니다. 오늘 오후에 답변을 업데이트하겠습니다. 나는 이것이 사용자가 기대했던 것이 아니라고 생각하지만, 어쨌든 나에게 유용 할 것이다. 감사!! –