add new pack: Editor Attributes, complete GoTo cmd
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using EditorAttributes;
|
||||
using Void = EditorAttributes.Void;
|
||||
|
||||
namespace EditorAttributesSamples
|
||||
{
|
||||
[CreateAssetMenu(fileName = "ExampleScriptableObject", menuName = "ScriptableObjects/ExampleScriptableObject")]
|
||||
public class ExampleScriptableObject : ScriptableObject
|
||||
{
|
||||
public enum Season { Winter, Spring, Summer, Fall }
|
||||
|
||||
[Serializable]
|
||||
public class PlayerClass
|
||||
{
|
||||
public string className;
|
||||
[Range(0f, 100f)] public float playerHealth;
|
||||
public GameObject playerPrefab;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class EnemyData
|
||||
{
|
||||
public string enemyName;
|
||||
[Range(0, 100)] public int enemyHealth;
|
||||
public float enemyDamage;
|
||||
public GameObject enemyPrefab;
|
||||
}
|
||||
|
||||
[Title("General Settings")]
|
||||
public string gameName;
|
||||
public bool isMultiplayer;
|
||||
[ShowField(nameof(isMultiplayer)), Clamp(0, 5), IndentProperty(20f)]
|
||||
public int maxPlayers;
|
||||
[Space]
|
||||
[Title("Entity Settings", titleSpace: 20f)]
|
||||
[SerializeField] private Void titleHolder;
|
||||
|
||||
[HelpBox("Will apply randomly to each player in the list", MessageMode.None)]
|
||||
[MinMaxSlider(0, 100)] public Vector2Int startingCurrency;
|
||||
|
||||
[DataTable] public PlayerClass[] playerClasses;
|
||||
[Space]
|
||||
[DataTable(true)] public EnemyData[] enemies;
|
||||
|
||||
[Title("Level Settings")]
|
||||
#if UNITY_6000_0_OR_NEWER
|
||||
[EnumButtons]
|
||||
#else
|
||||
[SelectionButtons]
|
||||
#endif
|
||||
public Season season;
|
||||
[Suffix(nameof(GetTimeOfDay), stringInputMode: StringInputMode.Dynamic), UnitField(Unit.Hour, Unit.Minute)]
|
||||
public float timeOfDay;
|
||||
[Space]
|
||||
[Dropdown(nameof(GetAudioClips))] public string backgroundMusic;
|
||||
[AssetPreview] public Sprite levelBackground;
|
||||
|
||||
private string[] GetAudioClips() => new string[] { "Music/BackgroundMusic1", "Music/BackgroundMusic2", "SFX/Explosion" };
|
||||
private string GetTimeOfDay() => $"{timeOfDay} minutes";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user