FMODi paigaldamine projekti sisse, fmod project created, assets are imported into FMOD; AudioManager and FMODEvents scripts, VR is set up
This commit is contained in:
66
Assets/Plugins/FMOD/src/Editor/BankRefDrawer.cs
Normal file
66
Assets/Plugins/FMOD/src/Editor/BankRefDrawer.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace FMODUnity
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(BankRefAttribute))]
|
||||
public class BankRefDrawer : PropertyDrawer
|
||||
{
|
||||
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
||||
{
|
||||
Texture browseIcon = EditorUtils.LoadImage("SearchIconBlack.png");
|
||||
|
||||
SerializedProperty pathProperty = property;
|
||||
|
||||
EditorGUI.BeginProperty(position, label, property);
|
||||
|
||||
Event e = Event.current;
|
||||
if (e.type == EventType.DragPerform && position.Contains(e.mousePosition))
|
||||
{
|
||||
if (DragAndDrop.objectReferences.Length > 0 &&
|
||||
DragAndDrop.objectReferences[0] != null &&
|
||||
DragAndDrop.objectReferences[0].GetType() == typeof(EditorBankRef))
|
||||
{
|
||||
pathProperty.stringValue = ((EditorBankRef)DragAndDrop.objectReferences[0]).Name;
|
||||
|
||||
e.Use();
|
||||
}
|
||||
}
|
||||
if (e.type == EventType.DragUpdated && position.Contains(e.mousePosition))
|
||||
{
|
||||
if (DragAndDrop.objectReferences.Length > 0 &&
|
||||
DragAndDrop.objectReferences[0] != null &&
|
||||
DragAndDrop.objectReferences[0].GetType() == typeof(EditorBankRef))
|
||||
{
|
||||
DragAndDrop.visualMode = DragAndDropVisualMode.Move;
|
||||
DragAndDrop.AcceptDrag();
|
||||
e.Use();
|
||||
}
|
||||
}
|
||||
|
||||
float baseHeight = GUI.skin.textField.CalcSize(new GUIContent()).y;
|
||||
|
||||
position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label);
|
||||
|
||||
var buttonStyle = new GUIStyle(GUI.skin.button);
|
||||
buttonStyle.padding.top = buttonStyle.padding.bottom = 1;
|
||||
|
||||
Rect searchRect = new Rect(position.x + position.width - browseIcon.width - 15, position.y, browseIcon.width + 10, baseHeight);
|
||||
Rect pathRect = new Rect(position.x, position.y, searchRect.x - position.x - 5, baseHeight);
|
||||
|
||||
EditorGUI.PropertyField(pathRect, pathProperty, GUIContent.none);
|
||||
if (GUI.Button(searchRect, new GUIContent(browseIcon, "Select FMOD Bank"), buttonStyle))
|
||||
{
|
||||
var eventBrowser = ScriptableObject.CreateInstance<EventBrowser>();
|
||||
|
||||
eventBrowser.ChooseBank(property);
|
||||
var windowRect = position;
|
||||
windowRect.position = GUIUtility.GUIToScreenPoint(windowRect.position);
|
||||
windowRect.height = searchRect.height + 1;
|
||||
eventBrowser.ShowAsDropDown(windowRect, new Vector2(windowRect.width, 400));
|
||||
}
|
||||
|
||||
EditorGUI.EndProperty();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user