推进度!
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
// using UnityEditor;
|
||||
// using UnityEditor.PackageManager;
|
||||
// using UnityEditor.PackageManager.Requests;
|
||||
// using UnityEngine;
|
||||
//
|
||||
// namespace UISplineRendererEditor
|
||||
// {
|
||||
// internal static class DependencyResolver
|
||||
// {
|
||||
// static AddRequest splineRequest;
|
||||
// static AddRequest collectionsRequest;
|
||||
// static AddRequest mathematicsRequest;
|
||||
// static AddRequest burstRequest;
|
||||
// [InitializeOnLoadMethod]
|
||||
// static void Install()
|
||||
// {
|
||||
// bool requested = false;
|
||||
// #if !ENABLE_SPLINES
|
||||
// splineRequest = Client.Add("com.unity.splines");
|
||||
// requested = true;
|
||||
// #endif
|
||||
// #if !ENABLE_COLLECTIONS
|
||||
// collectionsRequest = Client.Add("com.unity.collections");
|
||||
// requested = true;
|
||||
// #endif
|
||||
// #if !ENABLE_MATHEMATICS
|
||||
// mathematicsRequest = Client.Add("com.unity.mathematics");
|
||||
// requested = true;
|
||||
// #endif
|
||||
// #if !ENABLE_BURST
|
||||
// burstRequest = Client.Add("com.unity.burst");
|
||||
// requested = true;
|
||||
// #endif
|
||||
// if(requested) EditorApplication.update += Progress;
|
||||
// }
|
||||
//
|
||||
// static void Progress()
|
||||
// {
|
||||
// if(splineRequest != null) PrintResult(splineRequest);
|
||||
// if(collectionsRequest != null) PrintResult(collectionsRequest);
|
||||
// if(mathematicsRequest != null) PrintResult(mathematicsRequest);
|
||||
// if(burstRequest != null) PrintResult(burstRequest);
|
||||
//
|
||||
// EditorApplication.update -= Progress;
|
||||
// }
|
||||
//
|
||||
// static void PrintResult(AddRequest request)
|
||||
// {
|
||||
// if (request.IsCompleted)
|
||||
// {
|
||||
// if (request.Status == StatusCode.Success)
|
||||
// Debug.Log("Installed: " + request.Result.packageId);
|
||||
// else if (request.Status >= StatusCode.Failure)
|
||||
// Debug.Log(request.Error.message);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 058e91b96c04792499664dc349852860
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4b66ad526b1cb0c49b3364a6b4884ccd
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.6 KiB |
@@ -0,0 +1,127 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3499b63a6dc8424f8ca9c03466edd59
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 2
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,76 @@
|
||||
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="True">
|
||||
<uie:ObjectField label="Spline Container" binding-path="splineContainer" name="splineContainer" type="UnityEngine.Splines.SplineContainer, Unity.Splines" />
|
||||
<uie:ObjectField label="Material" binding-path="m_Material" name="material" type="UnityEngine.Material, UnityEngine.CoreModule" />
|
||||
<ui:Toggle label="Recursive Material" binding-path="_recursiveMaterial" name="recursivceMaterial" tooltip="If true, this renderer's material value will also be applied to startImages and endImages." style="padding-left: 20px;" />
|
||||
<uie:ColorField label="Color" value="#FFFFFFFF" name="color" binding-path="m_Color" />
|
||||
<uie:GradientField label="Color Gradient" name="colorGradient" binding-path="_colorGradient" />
|
||||
<ui:Toggle label="Recursive Color" binding-path="_recursiveColor" name="recursivceColor" tooltip="If true, this renderer's color will also be applied to startImages and endImages." style="padding-left: 20px;" />
|
||||
<ui:Toggle label="Raycast Target" binding-path="m_RaycastTarget" name="raycastTarget" />
|
||||
<ui:Foldout text="Raycast Padding" name="raycastPaddingFoldout" value="false">
|
||||
<ui:Vector4Field binding-path="m_RaycastPadding" name="raycastPadding" />
|
||||
</ui:Foldout>
|
||||
<ui:Toggle label="Maskable" binding-path="m_Maskable" name="maskable" />
|
||||
<ui:VisualElement style="flex-grow: 1; background-color: rgba(0, 0, 0, 0); height: 20px; max-height: 20px; min-height: 20px;" />
|
||||
<ui:FloatField label="Width" value="6" binding-path="_width" name="width" tooltip="Width of this spline renderer" is-delayed="false" />
|
||||
<uie:CurveField label="Width Curve" binding-path="_widthCurve" tooltip="Multiplier for the width of this spline. [0..1]" name="widthCurve" />
|
||||
<ui:VisualElement name="lineTextureArea" style="background-color: rgba(0, 0, 0, 0);">
|
||||
<ui:Toggle label="Keep Zero Z" binding-path="_keepZeroZ" name="keepZeroZ" tooltip="Keep all z position and transform.localPosition.z as 0. This keep the spline flatten on canvas." />
|
||||
<ui:Toggle label="Keep Billboard" binding-path="_keepBillboard" name="keepBillboard" tooltip="Keep all normals of the vertices pointing towards the screen direction. This ensures that the spline is rendered as a billboard, even if you set odd rotations to knots." />
|
||||
<ui:VisualElement style="flex-grow: 1; background-color: rgba(0, 0, 0, 0); height: 20px; max-height: 20px; min-height: 20px;" />
|
||||
<ui:VisualElement name="presetButtons" style="flex-grow: 1; flex-direction: row; flex-shrink: 0;">
|
||||
<ui:Label text="Line Texture Preset" style="-unity-text-align: middle-left; align-self: stretch;" />
|
||||
<ui:Button text="Default (Anti-Alised)" display-tooltip-when-elided="true" name="default" tooltip="Default anti-aliased texture. This is simple trick using a slightly blurred image." style="height: 30px; max-height: 30px; min-height: 30px; flex-grow: 1;" />
|
||||
<ui:Button text="UV Test" display-tooltip-when-elided="true" name="uvTest" tooltip="Cheker texture with numbers. This is useful if you want to see how UVs are applied." style="height: 30px; max-height: 30px; min-height: 30px; flex-grow: 1;" />
|
||||
<ui:Button text="Custom" display-tooltip-when-elided="true" name="custom" tooltip="Custom texture. If you set the texture property via script, it's automatically changed." style="height: 30px; max-height: 30px; min-height: 30px; flex-grow: 1;" />
|
||||
</ui:VisualElement>
|
||||
<uie:ObjectField label="Texture" binding-path="m_Texture" name="texture" type="UnityEngine.Texture, UnityEngine.CoreModule" style="padding-left: 20px;" />
|
||||
<ui:SliderInt picking-mode="Ignore" label="Resolution" value="2" high-value="10" low-value="1" name="resolution" binding-path="_resolution" show-input-field="true" />
|
||||
<ui:Label tabindex="-1" text="Vertex Count" display-tooltip-when-elided="true" name="vertexCount" tooltip="Unity vertex limit is 65,000. keep vertex count lower than this." style="padding-left: 20px; -unity-text-align: middle-left;" />
|
||||
<ui:MinMaxSlider picking-mode="Ignore" label="Clip Range" min-value="0" max-value="1" low-limit="0" high-limit="1" name="clipRange" binding-path="_clipRange" />
|
||||
<ui:EnumField label="UV Mode" type="UI_Spline_Renderer.UVMode, UISplineRenderer" binding-path="_uvMode" name="uvMode" />
|
||||
</ui:VisualElement>
|
||||
<ui:VisualElement name="startImageArea" style="flex-grow: 1; background-color: rgba(0, 0, 0, 0);">
|
||||
<ui:VisualElement style="flex-grow: 1; background-color: rgba(0, 0, 0, 0); height: 20px; max-height: 20px; min-height: 20px;" />
|
||||
<ui:Vector2Field label="UV Multiplier" binding-path="_uvMultiplier" name="uvMultiplier" x="1" y="1" />
|
||||
<ui:Vector2Field label="UV Offset" binding-path="_uvOffset" name="uvOffset" tooltip="Line texture’s UV offset. You can make simple texture animations using this property. " />
|
||||
<ui:VisualElement name="presetButtons" style="flex-grow: 1; flex-shrink: 0; flex-direction: row;">
|
||||
<ui:Label text="Start Image Preset" style="-unity-text-align: middle-left; align-self: stretch;" />
|
||||
<ui:VisualElement name="vert" style="flex-grow: 1; background-color: rgba(0, 0, 0, 0); justify-content: space-around;">
|
||||
<ui:VisualElement name="hor1" style="flex-grow: 1; background-color: rgba(0, 0, 0, 0); flex-direction: row; height: 30px; max-height: 30px; min-height: 30px;">
|
||||
<ui:Button text="None" display-tooltip-when-elided="true" name="none" style="flex-grow: 1;" />
|
||||
<ui:Button text="Triangle" display-tooltip-when-elided="true" name="triangle" style="flex-grow: 1;" />
|
||||
<ui:Button text="Arrow" display-tooltip-when-elided="true" name="arrow" style="flex-grow: 1;" />
|
||||
</ui:VisualElement>
|
||||
<ui:VisualElement name="hor2" style="flex-grow: 1; background-color: rgba(0, 0, 0, 0); flex-direction: row; height: 30px; max-height: 30px; min-height: 30px;">
|
||||
<ui:Button text="Empty Circle" display-tooltip-when-elided="true" name="emptyCircle" style="flex-grow: 1;" />
|
||||
<ui:Button text="Filled Circle" display-tooltip-when-elided="true" name="filledCircle" style="flex-grow: 1;" />
|
||||
<ui:Button text="Custom" display-tooltip-when-elided="true" name="custom" style="flex-grow: 1;" />
|
||||
</ui:VisualElement>
|
||||
</ui:VisualElement>
|
||||
</ui:VisualElement>
|
||||
<uie:ObjectField label="Start Image Sprite" binding-path="_startImageSprite" name="sprite" type="UnityEngine.Sprite, UnityEngine.CoreModule" style="padding-left: 20px;" />
|
||||
<ui:FloatField label="Start Image Size" value="32" binding-path="_startImageSize" name="size" style="padding-left: 20px;" />
|
||||
<ui:FloatField label="Start Image Offset" value="0" binding-path="_startImageOffset" name="offset" tooltip="Offset from first point of spline. If the value is greater than 0, it moves along the spline. Otherwise, it moves backward relative to current rotation." style="padding-left: 20px;" />
|
||||
</ui:VisualElement>
|
||||
<ui:VisualElement name="endImageArea" style="flex-grow: 1; background-color: rgba(0, 0, 0, 0);">
|
||||
<ui:VisualElement style="flex-grow: 1; background-color: rgba(0, 0, 0, 0); height: 20px; max-height: 20px; min-height: 20px;" />
|
||||
<ui:VisualElement name="presetButtons" style="flex-grow: 1; flex-shrink: 0; flex-direction: row;">
|
||||
<ui:Label text="End Image Preset" style="-unity-text-align: middle-left; align-self: stretch;" />
|
||||
<ui:VisualElement name="vert" style="flex-grow: 1; background-color: rgba(0, 0, 0, 0); justify-content: space-around;">
|
||||
<ui:VisualElement name="hor1" style="flex-grow: 1; background-color: rgba(0, 0, 0, 0); flex-direction: row; height: 30px; max-height: 30px; min-height: 30px;">
|
||||
<ui:Button text="None" display-tooltip-when-elided="true" name="none" style="flex-grow: 1;" />
|
||||
<ui:Button text="Triangle" display-tooltip-when-elided="true" name="triangle" style="flex-grow: 1;" />
|
||||
<ui:Button text="Arrow" display-tooltip-when-elided="true" name="arrow" style="flex-grow: 1;" />
|
||||
</ui:VisualElement>
|
||||
<ui:VisualElement name="hor2" style="flex-grow: 1; background-color: rgba(0, 0, 0, 0); flex-direction: row; height: 30px; max-height: 30px; min-height: 30px;">
|
||||
<ui:Button text="Empty Circle" display-tooltip-when-elided="true" name="emptyCircle" style="flex-grow: 1;" />
|
||||
<ui:Button text="Filled Circle" display-tooltip-when-elided="true" name="filledCircle" style="flex-grow: 1;" />
|
||||
<ui:Button text="Custom" display-tooltip-when-elided="true" name="custom" style="flex-grow: 1;" />
|
||||
</ui:VisualElement>
|
||||
</ui:VisualElement>
|
||||
</ui:VisualElement>
|
||||
<uie:ObjectField label="End Image Sprite" binding-path="_endImageSprite" name="sprite" type="UnityEngine.Sprite, UnityEngine.CoreModule" style="padding-left: 20px;" />
|
||||
<ui:FloatField label="End Image Size" value="32" binding-path="_endImageSize" name="size" style="padding-left: 20px;" />
|
||||
<ui:FloatField label="End Image Offset" value="0" binding-path="_endImageOffset" name="offset" tooltip="Offset from last point of spline. If the value is smaller than 0, it moves along the spline. Otherwise, it moves forward relative to current rotation." style="padding-left: 20px;" />
|
||||
</ui:VisualElement>
|
||||
</ui:UXML>
|
||||
@@ -0,0 +1,10 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d080aacdb57b754ea02423382b3c18e
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"name": "UISplineRenderer.Editor",
|
||||
"rootNamespace": "UISplineRendererEditor",
|
||||
"references": [
|
||||
"GUID:21d1eb854b91ade49bc69a263d12bee2",
|
||||
"GUID:8f24f501fa8e1fb48a03f1d7e6d03db4"
|
||||
],
|
||||
"includePlatforms": [
|
||||
"Editor"
|
||||
],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [
|
||||
{
|
||||
"name": "com.unity.splines",
|
||||
"expression": "",
|
||||
"define": "ENABLE_SPLINES"
|
||||
},
|
||||
{
|
||||
"name": "com.unity.collections",
|
||||
"expression": "",
|
||||
"define": "ENABLE_COLLECTIONS"
|
||||
},
|
||||
{
|
||||
"name": "com.unity.mathematics",
|
||||
"expression": "",
|
||||
"define": "ENABLE_MATHEMATICS"
|
||||
},
|
||||
{
|
||||
"name": "com.unity.burst",
|
||||
"expression": "",
|
||||
"define": "ENABLE_BURST"
|
||||
}
|
||||
],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ba3c2b61e54e2994595f1bd021287b42
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,583 @@
|
||||
using System;
|
||||
using UI_Spline_Renderer;
|
||||
using UnityEditor;
|
||||
using UnityEditor.UIElements;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Splines;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace UISplineRendererEditor
|
||||
{
|
||||
[CustomEditor(typeof(UISplineRenderer))]
|
||||
[CanEditMultipleObjects]
|
||||
public class UISplineRendererEditor : UnityEditor.Editor
|
||||
{
|
||||
|
||||
UISplineRenderer _target;
|
||||
|
||||
ObjectField _splineContainerField;
|
||||
ObjectField _materialField;
|
||||
ObjectField _textureField;
|
||||
Button _defaultLineTextureButton;
|
||||
Button _uvTestLineTextureButton;
|
||||
Button _customLineTextureButton;
|
||||
|
||||
Toggle _keepZeroZField;
|
||||
Toggle _keepBillboardField;
|
||||
|
||||
EnumField _uvModeField;
|
||||
SliderInt _resolutionSlider;
|
||||
Label _vertexCountField;
|
||||
|
||||
ObjectField _startImageSpriteField;
|
||||
FloatField _startImageSizeField;
|
||||
FloatField _startImageOffsetField;
|
||||
Button _noneStartImageButton;
|
||||
Button _triangleStartImageButton;
|
||||
Button _arrowStartImageButton;
|
||||
Button _emptyCircleStartImageButton;
|
||||
Button _filledCircleStartImageButton;
|
||||
Button _customStartImageButton;
|
||||
|
||||
ObjectField _endImageSpriteField;
|
||||
FloatField _endImageSizeField;
|
||||
FloatField _endImageOffsetField;
|
||||
Button _noneEndImageButton;
|
||||
Button _triangleEndImageButton;
|
||||
Button _arrowEndImageButton;
|
||||
Button _emptyCircleEndImageButton;
|
||||
Button _filledCircleEndImageButton;
|
||||
Button _customEndImageButton;
|
||||
|
||||
bool _shouldUpdateStartEndImages;
|
||||
|
||||
UISplineRendererSettings settings => UISplineRendererSettings.Instance;
|
||||
void OnEnable()
|
||||
{
|
||||
if (_target == null) _target = target as UISplineRenderer;
|
||||
Spline.Changed += SplineChangeCallback;
|
||||
SplineContainer.SplineAdded += SplineContainerChangeCallback;
|
||||
SplineContainer.SplineRemoved += SplineContainerChangeCallback;
|
||||
EditorApplication.update += _delayed_update_vertex_count;
|
||||
|
||||
void _delayed_update_vertex_count()
|
||||
{
|
||||
UpdateVertexCount();
|
||||
EditorApplication.update -= UpdateVertexCount;
|
||||
}
|
||||
}
|
||||
void OnDisable()
|
||||
{
|
||||
Spline.Changed -= SplineChangeCallback;
|
||||
SplineContainer.SplineAdded -= SplineContainerChangeCallback;
|
||||
SplineContainer.SplineRemoved -= SplineContainerChangeCallback;
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
serializedObject.Update();
|
||||
EditorGUI.BeginChangeCheck();
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_splineContainer"));
|
||||
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_fitPosition"));
|
||||
EditorGUI.indentLevel--;
|
||||
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Material"));
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_recursiveMaterial"));
|
||||
EditorGUI.indentLevel--;
|
||||
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Color"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_colorGradient"));
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_recursiveColor"));
|
||||
EditorGUI.indentLevel--;
|
||||
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_RaycastTarget"));
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_RaycastPadding"));
|
||||
EditorGUI.indentLevel--;
|
||||
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Maskable"));
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_width"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_widthCurve"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_keepZeroZ"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_keepBillboard"));
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
var lineTexturePreset = EnumButtonField("Line Texture Preset", Enum.GetNames(typeof(LineTexturePreset)),
|
||||
(int)_target.lineTexturePreset);
|
||||
if(EditorGUI.EndChangeCheck())
|
||||
{
|
||||
_target.lineTexturePreset = (LineTexturePreset)lineTexturePreset;
|
||||
}
|
||||
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Texture"));
|
||||
EditorGUI.indentLevel--;
|
||||
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_smooth"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_roundEnds"));
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
var resolution = serializedObject.FindProperty("_resolution");
|
||||
EditorGUILayout.IntSlider(resolution, 1, 20);
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
_target.resolution = resolution.intValue;
|
||||
}
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.LabelField("Vertex Count", _target.vertexCount.ToString());
|
||||
EditorGUI.indentLevel--;
|
||||
|
||||
var clipRangeSP = serializedObject.FindProperty("_clipRange");
|
||||
var clipRange = clipRangeSP.vector2Value;
|
||||
EditorGUILayout.MinMaxSlider("Clip Range", ref clipRange.x, ref clipRange.y, 0, 1);
|
||||
clipRangeSP.vector2Value = clipRange;
|
||||
|
||||
EditorGUILayout.LabelField($"min: {clipRange.x} | max: {clipRange.y}");
|
||||
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_uvMode"));
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_uvMultiplier"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_uvOffset"));
|
||||
|
||||
EditorGUILayout.Space();
|
||||
EditorGUI.BeginChangeCheck();
|
||||
var startImagePreset = EnumButtonField("Start Image Preset", Enum.GetNames(typeof(StartEndImagePreset)),
|
||||
(int)_target.startImagePreset, 3);
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
_target.startImagePreset = (StartEndImagePreset)startImagePreset;
|
||||
}
|
||||
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_startImageSprite"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_startImageSize"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_startImageOffsetMode"));
|
||||
if(_target.startImageOffsetMode == OffsetMode.Distance)
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_startImageOffset"));
|
||||
else if(_target.startImageOffsetMode == OffsetMode.Normalized)
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_normalizedStartImageOffset"));
|
||||
EditorGUI.indentLevel--;
|
||||
|
||||
EditorGUILayout.Space();
|
||||
EditorGUI.BeginChangeCheck();
|
||||
var endImagePreset = EnumButtonField("End Image Preset", Enum.GetNames(typeof(StartEndImagePreset)),
|
||||
(int)_target.endImagePreset, 3);
|
||||
if(EditorGUI.EndChangeCheck())
|
||||
{
|
||||
_target.endImagePreset = (StartEndImagePreset)endImagePreset;
|
||||
}
|
||||
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_endImageSprite"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_endImageSize"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_endImageOffsetMode"));
|
||||
if(_target.endImageOffsetMode == OffsetMode.Distance)
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_endImageOffset"));
|
||||
else if(_target.endImageOffsetMode == OffsetMode.Normalized)
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_normalizedEndImageOffset"));
|
||||
EditorGUI.indentLevel--;
|
||||
|
||||
|
||||
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
EditorUtility.SetDirty(target);
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
_target.UpdateRaycastTargetRect();
|
||||
foreach (var o in targets)
|
||||
{
|
||||
var renderer = o as UISplineRenderer;
|
||||
renderer.UpdateStartEndImages(true);
|
||||
renderer.UpdateStartEndImages(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int EnumButtonField(string label, string[] names, int selected, int lineChange = 0)
|
||||
{
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
GUILayout.Label(label);
|
||||
EditorGUILayout.BeginVertical();
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
for(var i = 0; i < names.Length; i ++)
|
||||
{
|
||||
if (i > 0 && lineChange > 0 && i % lineChange == 0)
|
||||
{
|
||||
EditorGUILayout.EndHorizontal();
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
}
|
||||
if (i == selected) GUI.color = new Color(2,2,2);
|
||||
if (GUILayout.Button(names[i], GUILayout.Height(30)))
|
||||
{
|
||||
selected = i;
|
||||
}
|
||||
GUI.color = Color.white;
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
EditorGUILayout.EndVertical();
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
return selected;
|
||||
}
|
||||
|
||||
// public override VisualElement CreateInspectorGUI()
|
||||
// {
|
||||
// var asset = Resources.Load<VisualTreeAsset>("UISplineRenderer Inspector");
|
||||
// var tree = asset.CloneTree();
|
||||
//
|
||||
// _splineContainerField = tree.Q<ObjectField>("splineContainer");
|
||||
// _splineContainerField.SetEnabled(false);
|
||||
//
|
||||
// _materialField = tree.Q<ObjectField>("material");
|
||||
// _materialField.RegisterValueChangedCallback(e =>
|
||||
// {
|
||||
// _target.material = e.newValue as Material;
|
||||
// });
|
||||
//
|
||||
// _keepZeroZField = tree.Q<Toggle>("keepZeroZ");
|
||||
// _keepZeroZField.RegisterValueChangedCallback(e =>
|
||||
// {
|
||||
// _target.UpdateStartEndImages(true);
|
||||
// _target.UpdateStartEndImages(false);
|
||||
// });
|
||||
// _keepBillboardField = tree.Q<Toggle>("keepBillboard");
|
||||
// _keepBillboardField.RegisterValueChangedCallback(e =>
|
||||
// {
|
||||
// _target.UpdateStartEndImages(true);
|
||||
// _target.UpdateStartEndImages(false);
|
||||
// });
|
||||
//
|
||||
// var lineTextureArea = tree.Q<VisualElement>("lineTextureArea");
|
||||
// _textureField = lineTextureArea.Q<ObjectField>("texture");
|
||||
//
|
||||
// var textureButtons = tree.Q<VisualElement>("presetButtons");
|
||||
// _defaultLineTextureButton = textureButtons.Q<Button>("default");
|
||||
// _uvTestLineTextureButton = textureButtons.Q<Button>("uvTest");
|
||||
// _customLineTextureButton = textureButtons.Q<Button>("custom");
|
||||
//
|
||||
// _defaultLineTextureButton.clicked += () => OnLineTexturePresetChanged(LineTexturePreset.Default);
|
||||
// _uvTestLineTextureButton.clicked += () => OnLineTexturePresetChanged(LineTexturePreset.UVTest);
|
||||
// _customLineTextureButton.clicked += () => OnLineTexturePresetChanged(LineTexturePreset.Custom);
|
||||
//
|
||||
// OnLineTexturePresetChanged(_target.lineTexturePreset);
|
||||
//
|
||||
// _uvModeField = lineTextureArea.Q<EnumField>("uvMode");
|
||||
// _uvModeField.tooltip = "Tile - Texture is tiled along spline length. The wrap mode of the texture should be Repeat\n\n" +
|
||||
// "Repeat per Segment - Texture is placed per segment(based on spline knots). The wrap mode of the texture should be Repeat\n\n" +
|
||||
// "Stretch - Texture is stretched along spline.";
|
||||
//
|
||||
//
|
||||
// _vertexCountField = lineTextureArea.Q<Label>("vertexCount");
|
||||
// _resolutionSlider = lineTextureArea.Q<SliderInt>("resolution");
|
||||
// _resolutionSlider.RegisterValueChangedCallback(e =>
|
||||
// {
|
||||
// _target.resolution = e.newValue;
|
||||
// UpdateVertexCount();
|
||||
// });
|
||||
// UpdateVertexCount();
|
||||
//
|
||||
// var clipRangeSlider = lineTextureArea.Q<MinMaxSlider>("clipRange");
|
||||
// clipRangeSlider.RegisterValueChangedCallback(e =>
|
||||
// {
|
||||
// UpdateVertexCount();
|
||||
// });
|
||||
//
|
||||
// // init start images
|
||||
// var startImageArea = tree.Q<VisualElement>("startImageArea");
|
||||
// _startImageSpriteField = startImageArea.Q<ObjectField>("sprite");
|
||||
// _startImageSpriteField.RegisterValueChangedCallback(e =>
|
||||
// {
|
||||
// _target.UpdateStartEndImages(true);
|
||||
// });
|
||||
//
|
||||
// _noneStartImageButton = startImageArea.Q<Button>("none");
|
||||
// _triangleStartImageButton = startImageArea.Q<Button>("triangle");
|
||||
// _arrowStartImageButton = startImageArea.Q<Button>("arrow");
|
||||
// _emptyCircleStartImageButton = startImageArea.Q<Button>("emptyCircle");
|
||||
// _filledCircleStartImageButton = startImageArea.Q<Button>("filledCircle");
|
||||
// _customStartImageButton = startImageArea.Q<Button>("custom");
|
||||
//
|
||||
// _noneStartImageButton.clicked += () => OnStartImagePresetChanged(StartEndImagePreset.None);
|
||||
// _triangleStartImageButton.clicked += () => OnStartImagePresetChanged(StartEndImagePreset.Triangle);
|
||||
// _arrowStartImageButton.clicked += () => OnStartImagePresetChanged(StartEndImagePreset.Arrow);
|
||||
// _emptyCircleStartImageButton.clicked += () => OnStartImagePresetChanged(StartEndImagePreset.EmptyCircle);
|
||||
// _filledCircleStartImageButton.clicked += () => OnStartImagePresetChanged(StartEndImagePreset.FilledCircle);
|
||||
// _customStartImageButton.clicked += () => OnStartImagePresetChanged(StartEndImagePreset.Custom);
|
||||
//
|
||||
// _startImageSizeField = startImageArea.Q<FloatField>("size");
|
||||
// _startImageSizeField.RegisterValueChangedCallback(e =>
|
||||
// {
|
||||
// _target.UpdateStartEndImages(true);
|
||||
// });
|
||||
//
|
||||
// _startImageOffsetField = startImageArea.Q<FloatField>("offset");
|
||||
// _startImageOffsetField.RegisterValueChangedCallback(e =>
|
||||
// {
|
||||
// _target.UpdateStartEndImages(true);
|
||||
// });
|
||||
//
|
||||
// OnStartImagePresetChanged(_target.startImagePreset);
|
||||
//
|
||||
//
|
||||
// // init end images
|
||||
// var endImageArea = tree.Q<VisualElement>("endImageArea");
|
||||
// _endImageSpriteField = endImageArea.Q<ObjectField>("sprite");
|
||||
// _endImageSpriteField.RegisterValueChangedCallback(e =>
|
||||
// {
|
||||
// _target.UpdateStartEndImages(false);
|
||||
// });
|
||||
//
|
||||
// _noneEndImageButton = endImageArea.Q<Button>("none");
|
||||
// _triangleEndImageButton = endImageArea.Q<Button>("triangle");
|
||||
// _arrowEndImageButton = endImageArea.Q<Button>("arrow");
|
||||
// _emptyCircleEndImageButton = endImageArea.Q<Button>("emptyCircle");
|
||||
// _filledCircleEndImageButton = endImageArea.Q<Button>("filledCircle");
|
||||
// _customEndImageButton = endImageArea.Q<Button>("custom");
|
||||
//
|
||||
// _noneEndImageButton.clicked += () => OnEndImagePresetChanged(StartEndImagePreset.None);
|
||||
// _triangleEndImageButton.clicked += () => OnEndImagePresetChanged(StartEndImagePreset.Triangle);
|
||||
// _arrowEndImageButton.clicked += () => OnEndImagePresetChanged(StartEndImagePreset.Arrow);
|
||||
// _emptyCircleEndImageButton.clicked += () => OnEndImagePresetChanged(StartEndImagePreset.EmptyCircle);
|
||||
// _filledCircleEndImageButton.clicked += () => OnEndImagePresetChanged(StartEndImagePreset.FilledCircle);
|
||||
// _customEndImageButton.clicked += () => OnEndImagePresetChanged(StartEndImagePreset.Custom);
|
||||
//
|
||||
//
|
||||
// OnEndImagePresetChanged(_target.endImagePreset);
|
||||
// _endImageSizeField = endImageArea.Q<FloatField>("size");
|
||||
// _endImageSizeField.RegisterValueChangedCallback(e =>
|
||||
// {
|
||||
// _target.UpdateStartEndImages(false);
|
||||
// });
|
||||
//
|
||||
// _endImageOffsetField = endImageArea.Q<FloatField>("offset");
|
||||
// _endImageOffsetField.RegisterValueChangedCallback(e =>
|
||||
// {
|
||||
// _target.UpdateStartEndImages(false);
|
||||
// });
|
||||
//
|
||||
//
|
||||
// return tree;
|
||||
// }
|
||||
|
||||
|
||||
void OnLineTexturePresetChanged(LineTexturePreset preset)
|
||||
{
|
||||
switch (preset)
|
||||
{
|
||||
case LineTexturePreset.Default:
|
||||
_defaultLineTextureButton.style.backgroundColor = Color.gray;
|
||||
_uvTestLineTextureButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_customLineTextureButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_textureField.value = settings.defaultLineTexture;
|
||||
// _textureField.SetEnabled(false);
|
||||
|
||||
// if not initialized yet
|
||||
if (_target.texture == null)
|
||||
{
|
||||
_target.texture = settings.defaultLineTexture;
|
||||
}
|
||||
break;
|
||||
case LineTexturePreset.UVTest:
|
||||
_defaultLineTextureButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_uvTestLineTextureButton.style.backgroundColor = Color.gray;
|
||||
_customLineTextureButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_textureField.value = settings.uvTestLineTexture;
|
||||
// _textureField.SetEnabled(false);
|
||||
break;
|
||||
case LineTexturePreset.Custom:
|
||||
_defaultLineTextureButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_uvTestLineTextureButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_customLineTextureButton.style.backgroundColor = Color.gray;
|
||||
_textureField.SetEnabled(true);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(preset), preset, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void OnStartImagePresetChanged(StartEndImagePreset preset)
|
||||
{
|
||||
switch (preset)
|
||||
{
|
||||
case StartEndImagePreset.None:
|
||||
_noneStartImageButton.style.backgroundColor = Color.gray;
|
||||
_triangleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_arrowStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_emptyCircleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_filledCircleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_customStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
|
||||
_startImageSpriteField.value = null;
|
||||
// _startImageSpriteField.SetEnabled(false);
|
||||
break;
|
||||
case StartEndImagePreset.Triangle:
|
||||
_noneStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_triangleStartImageButton.style.backgroundColor = Color.gray;
|
||||
_arrowStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_emptyCircleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_filledCircleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_customStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
|
||||
_startImageSpriteField.value = settings.triangleHead;
|
||||
// _startImageSpriteField.SetEnabled(false);
|
||||
break;
|
||||
case StartEndImagePreset.Arrow:
|
||||
_noneStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_triangleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_arrowStartImageButton.style.backgroundColor = Color.gray;
|
||||
_emptyCircleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_filledCircleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_customStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
|
||||
_startImageSpriteField.value = settings.arrowHead;
|
||||
// _startImageSpriteField.SetEnabled(false);
|
||||
break;
|
||||
case StartEndImagePreset.EmptyCircle:
|
||||
_noneStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_triangleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_arrowStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_emptyCircleStartImageButton.style.backgroundColor = Color.gray;
|
||||
_filledCircleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_customStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
|
||||
_startImageSpriteField.value = settings.emptyCircleHead;
|
||||
// _startImageSpriteField.SetEnabled(false);
|
||||
break;
|
||||
case StartEndImagePreset.FilledCircle:
|
||||
_noneStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_triangleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_arrowStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_emptyCircleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_filledCircleStartImageButton.style.backgroundColor = Color.gray;
|
||||
_customStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
|
||||
_startImageSpriteField.value = settings.filledCircleHead;
|
||||
// _startImageSpriteField.SetEnabled(false);
|
||||
break;
|
||||
case StartEndImagePreset.Custom:
|
||||
_noneStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_triangleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_arrowStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_emptyCircleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_filledCircleStartImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_customStartImageButton.style.backgroundColor = Color.gray;
|
||||
|
||||
_startImageSpriteField.SetEnabled(true);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(preset), preset, null);
|
||||
}
|
||||
}
|
||||
|
||||
void OnEndImagePresetChanged(StartEndImagePreset preset)
|
||||
{
|
||||
switch (preset)
|
||||
{
|
||||
case StartEndImagePreset.None:
|
||||
_noneEndImageButton.style.backgroundColor = Color.gray;
|
||||
_triangleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_arrowEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_emptyCircleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_filledCircleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_customEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
|
||||
_endImageSpriteField.value = null;
|
||||
// _endImageSpriteField.SetEnabled(false);
|
||||
break;
|
||||
case StartEndImagePreset.Triangle:
|
||||
_noneEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_triangleEndImageButton.style.backgroundColor = Color.gray;
|
||||
_arrowEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_emptyCircleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_filledCircleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_customEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
|
||||
_endImageSpriteField.value = settings.triangleHead;
|
||||
// _endImageSpriteField.SetEnabled(false);
|
||||
break;
|
||||
case StartEndImagePreset.Arrow:
|
||||
_noneEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_triangleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_arrowEndImageButton.style.backgroundColor = Color.gray;
|
||||
_emptyCircleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_filledCircleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_customEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
|
||||
_endImageSpriteField.value = settings.arrowHead;
|
||||
// _endImageSpriteField.SetEnabled(false);
|
||||
break;
|
||||
case StartEndImagePreset.EmptyCircle:
|
||||
_noneEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_triangleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_arrowEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_emptyCircleEndImageButton.style.backgroundColor = Color.gray;
|
||||
_filledCircleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_customEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
|
||||
_endImageSpriteField.value = settings.emptyCircleHead;
|
||||
// _endImageSpriteField.SetEnabled(false);
|
||||
break;
|
||||
case StartEndImagePreset.FilledCircle:
|
||||
_noneEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_triangleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_arrowEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_emptyCircleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_filledCircleEndImageButton.style.backgroundColor = Color.gray;
|
||||
_customEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
|
||||
_endImageSpriteField.value = settings.filledCircleHead;
|
||||
// _endImageSpriteField.SetEnabled(false);
|
||||
break;
|
||||
case StartEndImagePreset.Custom:
|
||||
_noneEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_triangleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_arrowEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_emptyCircleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_filledCircleEndImageButton.style.backgroundColor = StyleKeyword.Null;
|
||||
_customEndImageButton.style.backgroundColor = Color.gray;
|
||||
|
||||
_endImageSpriteField.SetEnabled(true);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(preset), preset, null);
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateVertexCount()
|
||||
{
|
||||
if(_vertexCountField == null) return;
|
||||
#if UNITY_2022_3_OR_NEWER
|
||||
_vertexCountField.text = $"Vertex Count : {_target.vertexCount}";
|
||||
#endif
|
||||
}
|
||||
|
||||
void SplineChangeCallback(Spline spline, int idx, SplineModification modification)
|
||||
{
|
||||
for (int i = 0; i < _target.splineContainer.Splines.Count; i++)
|
||||
{
|
||||
if (_target.splineContainer.Splines[i] == spline)
|
||||
{
|
||||
UpdateVertexCount();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
void SplineContainerChangeCallback(SplineContainer container, int i)
|
||||
{
|
||||
if(container == _target.splineContainer) UpdateVertexCount();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 30338a4923984065905dd45640ab4853
|
||||
timeCreated: 1690032615
|
||||
Reference in New Issue
Block a user