Урок о добавлении звука в игру. В видео рассмотрен импорт звука и правильная настройка для сохранения баланса между производительностью и затратами памяти. Показано использование основных компонентов, работающих с аудио. А также показано, как включать тот или иной звук по необходимости, на примере изменения звука шагов в зависимости от поверхности.
Скрипт из урока:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
using UnityEngine; using System.Collections; [RequireComponent(typeof(AudioSource))] public class JessicaScript : MonoBehaviour { public float speed = 5f; public AudioClip[] clips; Animator animator; CharacterController controller; AudioSource source; // Use this for initialization void Start () { animator = GetComponent<Animator> (); controller = GetComponent<CharacterController>(); source = GetComponent<AudioSource>(); source.playOnAwake = false; source.loop = false; } // Update is called once per frame void Update () { } void FixedUpdate() { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); if(controller.isGrounded) { if(v != 0) { controller.Move(transform.forward * v * Time.deltaTime * speed); animator.SetBool("walk", true); if(!source.isPlaying) { RaycastHit hit; if(Physics.Raycast(transform.position + Vector3.up, -Vector3.up, out hit, 2f)) { if(hit.collider.material.name == "Metall (Instance)") { source.clip = clips[1]; } else { source.clip = clips[0]; } source.Play(); } } } else { animator.SetBool("walk", false); } if(h != 0) { transform.Rotate(0, h * speed, 0); } } controller.Move(Physics.gravity * Time.deltaTime); } } |