少年修仙传客户端代码仓库
hch
2025-06-12 204ef05a831c9484e2abc561d27ecbff7c797453
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
65
66
67
68
69
70
71
72
73
using UnityEngine;
 
#if UNITY_EDITOR
using System;
using System.IO;
using UnityEditor;
#endif
 
public class SoCameraSFX : ScriptableObject
{
    public float zoomScale;
    public float zoomTime;
    //public float zoomDuration;
    //public float zoomRecoverTime;
 
    public Vector3 direction;
    public float power;
    public float interval;
    public float duration;
}
 
 
#if UNITY_EDITOR
[CustomEditor(typeof(SoCameraSFX))]
public class SoCameraSFXEditor : Editor
{
 
    [MenuItem("程序/角色相关/技能配置/摄像机控制")]
    static void CreateSoCameraSFX()
    {
        SoCameraSFX _config = CreateInstance<SoCameraSFX>();
        string _createName = string.Format(ScriptableObjectLoader.SoCameraSFX_Suffix,
                                           DateTime.UtcNow.ToFileTimeUtc());
        string _path = ResourcesPath.ResourcesOutPath + "refdata/ScriptableObject/SoCameraSFX/";
        if (Directory.Exists(_path) == false)
        {
            Directory.CreateDirectory(_path);
        }
        _path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
                                      "refdata/ScriptableObject/SoCameraSFX/",
                                      _createName,
                                      ".asset");
        AssetDatabase.CreateAsset(_config, _path);
        AssetDatabase.Refresh();
        ProjectWindowUtil.ShowCreatedAsset(_config);
    }
 
    public override void OnInspectorGUI()
    {
        serializedObject.Update();
 
        SoCameraSFX _target = target as SoCameraSFX;
 
        _target.zoomScale = EditorGUILayout.FloatField("缩放系数", _target.zoomScale);
        _target.zoomTime = EditorGUILayout.FloatField("缩放时间", _target.zoomTime);
        //_target.zoomDuration = EditorGUILayout.FloatField("缩放保持时间", _target.zoomDuration);
        //_target.zoomRecoverTime = EditorGUILayout.FloatField("缩放恢复时间", _target.zoomRecoverTime);
 
        GUILayout.Space(10);
 
        _target.direction = EditorGUILayout.Vector3Field("震动方向", _target.direction);
        _target.power = EditorGUILayout.FloatField("震动力度", _target.power);
        _target.interval = EditorGUILayout.FloatField("震动间隔", _target.interval);
        _target.duration = EditorGUILayout.FloatField("震动持续时间", _target.duration);
 
        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
            serializedObject.ApplyModifiedProperties();
        }
    }
}
#endif