Lisasime kollile hääle ka, kui ta ilmub välja, ilmub välja koos karjumisega :D ärge ehmuge. Tal on iga kord natuke erinev hääl, sest see skript mis ma tegin, see muudab hääle kiirust iga maximum 1 sekund, niiet suvaline arva 0 ja 1 sekundi vahel. Skript on selline, kui kedagi huvitab... ja edaspidi, tekstidel on .cs lõpuga, et oleks õige programeerimis keel jne.
using UnityEngine;
using System.Collections;
public class soundPlay : MonoBehaviour {
public AudioClip clip;
private float timeToZero;
private AudioSource _src;
private DelaySystem _del;
public float _pitch;
public bool randomized;
public Vector2 rand;
public Vector2 offTime;
// Use this for initialization
void Start () {
_src = this.gameObject.AddComponent<AudioSource>();
_del = this.gameObject.AddComponent<DelaySystem>();
_src.playOnAwake = false;
_src.PlayOneShot(clip, 1F);
}
// Update is called once per frame
void Update () {
_src.pitch = Mathf.SmoothStep(_src.pitch, 0, timeToZero);
if (_del.done) {
_del.StartDelay(Random.Range(0, 500));
if (randomized)
{
_pitch = Random.Range(rand.x, rand.y);
timeToZero = Random.Range(offTime.x, offTime.y);
_src.pitch = _pitch;
}
}
}
}
ja siin on DELAYSYSTEM, sest see skript, ilma delaysystemita ei saa hakkama
using UnityEngine;
using System.Collections;
public class DelaySystem : MonoBehaviour {
public bool done;
public int remainMS;
public int endTimeMS;
public int TimeMS;
public void StartDelay (int millisecond) {
endTimeMS = TimeMS + millisecond;
done = false;
}
void Update() {
if (endTimeMS >= 60000F) done = true;
if (remainMS <= 0) done = true;
System.DateTime TIME = System.DateTime.Now;
float FTimeMS;
FTimeMS = TIME.Millisecond;
FTimeMS /= 1000;
FTimeMS += TIME.Second;
FTimeMS *= 1000;
TimeMS = Mathf.FloorToInt(FTimeMS);
remainMS = endTimeMS - TimeMS;
}
}