Gameplay Ingredients是一组用于 Unity 游戏的运行时和编辑器工具:一组脚本的集合,可在制作游戏和原型时简化简单的任务。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

45 行
1.4 KiB

using UnityEngine;
using NaughtyAttributes;
namespace GameplayIngredients.Actions
{
[AddComponentMenu(ComponentMenu.actionsPath + "Audio Play Clip Action")]
[Callable("Audio", "Actions/ic-action-audio.png")]
public class AudioPlayClipAction : ActionBase
{
public AudioClip Clip;
[NonNullCheck]
public AudioSource Source;
public bool RandomizePitch = false;
[ShowIf("RandomizePitch")]
public Vector2 PitchRange = new Vector2(0,3);
public bool RandomizeVolume = false;
[ShowIf("RandomizeVolume")]
public Vector2 VolumeRange = new Vector2(0, 1);
public override void Execute(GameObject instigator = null)
{
if (Source != null)
{
Source.Stop();
if (RandomizePitch)
Source.pitch = Random.Range(PitchRange.x, PitchRange.y);
if (RandomizeVolume)
Source.volume = Random.Range(VolumeRange.x, VolumeRange.y);
if (Clip != null)
Source.clip = Clip;
Source.Play();
}
}
public override string GetDefaultName()
{
if(Clip == null)
return $"Play Audio Source: '{Source?.name}'";
else
return $"Play Audio clip '{Clip.name}' on '{Source?.name}'";
}
}
}