init
192
Assets/Dreamteck/Splines/Editor/ComputerSplitModule.cs
Normal file
@@ -0,0 +1,192 @@
|
||||
namespace Dreamteck.Splines.Editor
|
||||
{
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
|
||||
public class ComputerSplitModule : ComputerEditorModule
|
||||
{
|
||||
|
||||
public ComputerSplitModule(SplineComputer spline) : base(spline)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override GUIContent GetIconOff()
|
||||
{
|
||||
return IconContent("Split", "split", "Split Spline");
|
||||
}
|
||||
|
||||
public override GUIContent GetIconOn()
|
||||
{
|
||||
return IconContent("Split", "split_on", "Split Spline");
|
||||
}
|
||||
|
||||
public override void DrawScene()
|
||||
{
|
||||
bool change = false;
|
||||
Camera editorCamera = SceneView.currentDrawingSceneView.camera;
|
||||
|
||||
for (int i = 0; i < spline.pointCount; i++)
|
||||
{
|
||||
Vector3 pos = spline.GetPointPosition(i);
|
||||
if (SplineEditorHandles.CircleButton(pos, Quaternion.LookRotation(editorCamera.transform.position - pos), HandleUtility.GetHandleSize(pos) * 0.12f, 1f, spline.editorPathColor))
|
||||
{
|
||||
SplitAtPoint(i);
|
||||
change = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
SplineSample projected = spline.Evaluate(ProjectMouse());
|
||||
if (!change)
|
||||
{
|
||||
float pointValue = (float)projected.percent * (spline.pointCount - 1);
|
||||
int pointIndex = Mathf.FloorToInt(pointValue);
|
||||
float size = HandleUtility.GetHandleSize(projected.position) * 0.3f;
|
||||
Vector3 up = Vector3.Cross(editorCamera.transform.forward, projected.forward).normalized * size + projected.position;
|
||||
Vector3 down = Vector3.Cross(projected.forward, editorCamera.transform.forward).normalized * size + projected.position;
|
||||
Handles.color = spline.editorPathColor;
|
||||
Handles.DrawLine(up, down);
|
||||
Handles.color = Color.white;
|
||||
if (pointValue - pointIndex > spline.moveStep) {
|
||||
if (SplineEditorHandles.CircleButton(projected.position, Quaternion.LookRotation(editorCamera.transform.position - projected.position), HandleUtility.GetHandleSize(projected.position) * 0.12f, 1f, spline.editorPathColor))
|
||||
{
|
||||
SplitAtPercent(projected.percent);
|
||||
change = true;
|
||||
}
|
||||
}
|
||||
SceneView.RepaintAll();
|
||||
}
|
||||
Handles.color = Color.white;
|
||||
SplineDrawer.DrawSplineComputer(spline, 0.0, projected.percent, 1f);
|
||||
SplineDrawer.DrawSplineComputer(spline, projected.percent, 1.0, 0.4f);
|
||||
}
|
||||
|
||||
|
||||
void HandleNodes(SplineComputer newSpline, int splitIndex)
|
||||
{
|
||||
List<Node> nodes = new List<Node>();
|
||||
List<int> indices = new List<int>();
|
||||
|
||||
for (int i = splitIndex; i < spline.pointCount; i++)
|
||||
{
|
||||
Node node = spline.GetNode(i);
|
||||
if(node != null)
|
||||
{
|
||||
nodes.Add(node);
|
||||
indices.Add(i);
|
||||
spline.DisconnectNode(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < nodes.Count; i++) newSpline.ConnectNode(nodes[i], indices[i] - splitIndex);
|
||||
}
|
||||
|
||||
void SplitAtPercent(double percent)
|
||||
{
|
||||
RecordUndo("Split Spline");
|
||||
float pointValue = (spline.pointCount - 1) * (float)percent;
|
||||
int lastPointIndex = Mathf.FloorToInt(pointValue);
|
||||
int nextPointIndex = Mathf.CeilToInt(pointValue);
|
||||
SplinePoint[] splitPoints = new SplinePoint[spline.pointCount - lastPointIndex];
|
||||
float lerpPercent = Mathf.InverseLerp(lastPointIndex, nextPointIndex, pointValue);
|
||||
SplinePoint splitPoint = SplinePoint.Lerp(spline.GetPoint(lastPointIndex), spline.GetPoint(nextPointIndex), lerpPercent);
|
||||
splitPoint.SetPosition(spline.EvaluatePosition(percent));
|
||||
splitPoints[0] = splitPoint;
|
||||
for (int i = 1; i < splitPoints.Length; i++) splitPoints[i] = spline.GetPoint(lastPointIndex + i);
|
||||
SplineComputer newSpline = CreateNewSpline();
|
||||
newSpline.SetPoints(splitPoints);
|
||||
|
||||
HandleNodes(newSpline, lastPointIndex);
|
||||
|
||||
SplineUser[] users = newSpline.GetSubscribers();
|
||||
for (int i = 0; i < users.Length; i++)
|
||||
{
|
||||
users[i].clipFrom = DMath.InverseLerp(percent, 1.0, users[i].clipFrom);
|
||||
users[i].clipTo = DMath.InverseLerp(percent, 1.0, users[i].clipTo);
|
||||
}
|
||||
splitPoints = new SplinePoint[lastPointIndex + 2];
|
||||
for (int i = 0; i <= lastPointIndex; i++) splitPoints[i] = spline.GetPoint(i);
|
||||
splitPoints[splitPoints.Length - 1] = splitPoint;
|
||||
spline.SetPoints(splitPoints);
|
||||
users = spline.GetSubscribers();
|
||||
for (int i = 0; i < users.Length; i++)
|
||||
{
|
||||
users[i].clipFrom = DMath.InverseLerp(0.0, percent, users[i].clipFrom);
|
||||
users[i].clipTo = DMath.InverseLerp(0.0, percent, users[i].clipTo);
|
||||
}
|
||||
}
|
||||
|
||||
void SplitAtPoint(int index)
|
||||
{
|
||||
RecordUndo("Split Spline");
|
||||
SplinePoint[] splitPoints = new SplinePoint[spline.pointCount - index];
|
||||
for(int i = 0; i < splitPoints.Length; i++) splitPoints[i] = spline.GetPoint(index + i);
|
||||
SplineComputer newSpline = CreateNewSpline();
|
||||
newSpline.SetPoints(splitPoints);
|
||||
|
||||
HandleNodes(newSpline, index);
|
||||
|
||||
SplineUser[] users = newSpline.GetSubscribers();
|
||||
for (int i = 0; i < users.Length; i++)
|
||||
{
|
||||
users[i].clipFrom = DMath.InverseLerp((double)index / (spline.pointCount - 1), 1.0, users[i].clipFrom);
|
||||
users[i].clipTo = DMath.InverseLerp((double)index / (spline.pointCount - 1), 1.0, users[i].clipTo);
|
||||
}
|
||||
splitPoints = new SplinePoint[index + 1];
|
||||
for (int i = 0; i <= index; i++) splitPoints[i] = spline.GetPoint(i);
|
||||
spline.SetPoints(splitPoints);
|
||||
users = spline.GetSubscribers();
|
||||
for (int i = 0; i < users.Length; i++)
|
||||
{
|
||||
users[i].clipFrom = DMath.InverseLerp(0.0, ((double)index) / (spline.pointCount - 1), users[i].clipFrom);
|
||||
users[i].clipTo = DMath.InverseLerp(0.0, ((double)index) / (spline.pointCount - 1), users[i].clipTo);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
SplineComputer CreateNewSpline()
|
||||
{
|
||||
GameObject go = Object.Instantiate(spline.gameObject);
|
||||
Undo.RegisterCreatedObjectUndo(go, "New Spline");
|
||||
go.name = spline.name + "_split";
|
||||
SplineUser[] users = go.GetComponents<SplineUser>();
|
||||
SplineComputer newSpline = go.GetComponent<SplineComputer>();
|
||||
for (int i = 0; i < users.Length; i++)
|
||||
{
|
||||
spline.Unsubscribe(users[i]);
|
||||
users[i].spline = newSpline;
|
||||
newSpline.Subscribe(users[i]);
|
||||
}
|
||||
for(int i = go.transform.childCount-1; i>=0; i--)
|
||||
{
|
||||
Undo.DestroyObjectImmediate(go.transform.GetChild(i).gameObject);
|
||||
}
|
||||
return newSpline;
|
||||
}
|
||||
|
||||
private double ProjectMouse()
|
||||
{
|
||||
if (spline.pointCount == 0) return 0.0;
|
||||
float closestDistance = (Event.current.mousePosition - HandleUtility.WorldToGUIPoint(spline.GetPointPosition(0))).sqrMagnitude;
|
||||
double closestPercent = 0.0;
|
||||
double add = spline.moveStep;
|
||||
if (spline.type == Spline.Type.Linear) add /= 2.0;
|
||||
int count = 0;
|
||||
for (double i = add; i < 1.0; i += add)
|
||||
{
|
||||
SplineSample result = spline.Evaluate(i);
|
||||
Vector2 point = HandleUtility.WorldToGUIPoint(result.position);
|
||||
float dist = (point - Event.current.mousePosition).sqrMagnitude;
|
||||
if (dist < closestDistance)
|
||||
{
|
||||
closestDistance = dist;
|
||||
closestPercent = i;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
return closestPercent;
|
||||
}
|
||||
}
|
||||
}
|
||||
12
Assets/Dreamteck/Splines/Editor/ComputerSplitModule.cs.meta
Normal file
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 95c0ed13476debc49bb9365a20fb7c9e
|
||||
timeCreated: 1476814299
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
9
Assets/Dreamteck/Splines/Editor/Icons.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 04ead8b7662530e4d9a5e76ef9bae76c
|
||||
folderAsset: yes
|
||||
timeCreated: 1457898706
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/add.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/add.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7a5d15f3cf0772b4eaea6396d1733b62
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/add_dark.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/add_dark.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 96b7dbe2cec681345a8b3f4dc38944d9
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/add_on.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/add_on.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e7c5e2732014d0841beb2e3da56410c5
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/add_on_dark.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/add_on_dark.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0fe44e4f40f01a944acc051bb6a386ff
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/edit_cursor.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
134
Assets/Dreamteck/Splines/Editor/Icons/edit_cursor.png.meta
Normal file
@@ -0,0 +1,134 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 18bdcd629e6be3b40bea06b1eed30d3f
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/forever.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
88
Assets/Dreamteck/Splines/Editor/Icons/forever.png.meta
Normal file
@@ -0,0 +1,88 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a8c6341b9146b274a86ea850426901eb
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 7
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: -1
|
||||
wrapV: -1
|
||||
wrapW: -1
|
||||
nPOTScale: 1
|
||||
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: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/merge.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/merge.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 398d7dd5aa8459b419055e5c0b70d6c4
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 1
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/merge_dark.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/merge_dark.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 77974715df2046f4992d743bb4270675
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/merge_on.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/merge_on.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d82300e7e8792094fb8826337e6b6e9c
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/merge_on_dark.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/merge_on_dark.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5b45a94533ad4bf4d9ed738cab95e5f4
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/mirror.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/mirror.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8197b9198a564c84c8d4cce2a508c0db
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 1
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/mirror_dark.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/mirror_dark.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cab37296a2dd70540b58ed03bd10881a
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/mirror_on.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/mirror_on.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d62abb75b50f1c641b791978603be177
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/mirror_on_dark.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/mirror_on_dark.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 43cd1dbd630ef2d4ebd337ac2ab51a2b
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/normal.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/normal.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 99d6f760b0b77774c8e2729dca0a4ac7
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/normal_dark.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/normal_dark.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 63ac7cde5dce9724da6bafdbb03c08ad
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/normal_on.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/normal_on.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 55e9a5818ff4c0f4fabcbfa0e7cb4bcd
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/normal_on_dark.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/normal_on_dark.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 67f300b13f4475b4e8b15d4f09ab989e
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/plugin_header.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
59
Assets/Dreamteck/Splines/Editor/Icons/plugin_header.png.meta
Normal file
@@ -0,0 +1,59 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2fed21bdf8555094b92db4aab04d1b8f
|
||||
timeCreated: 1477240017
|
||||
licenseType: Store
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
linearTexture: 1
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
cubemapConvolution: 0
|
||||
cubemapConvolutionSteps: 7
|
||||
cubemapConvolutionExponent: 1.5
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -1
|
||||
wrapMode: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
rGBM: 0
|
||||
compressionQuality: 50
|
||||
allowsAlphaSplitting: 0
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 2
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/primitives.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/primitives.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6ec9e8641084dad41b534a95607e9293
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/primitives_dark.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/primitives_dark.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 852046afe3afc3c4da5193739b14c8ea
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/primitives_on.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/primitives_on.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 98beb0caa087b304abec853edc1d5b49
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/primitives_on_dark.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 34931132cbe14dc40b617dc7a2dda186
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/remove.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/remove.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 34ec387670b2ac84198cf7daf3f99b53
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/remove_dark.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/remove_dark.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6c52483422841154a88cf13e132c0252
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/remove_on.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/remove_on.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3597e623538af98449ca9f6d8a5b182e
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/remove_on_dark.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/remove_on_dark.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f7ec1d1aa89e3594bb4563b68b1055bd
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/split.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/split.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e95006705b12c444e94fc811b39a8ba8
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/split_dark.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/split_dark.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dfef37ecae1f2f84ebc676a9ffe7a104
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/split_on.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/split_on.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 88bb8263fd19d2447a9640ce93de3454
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Dreamteck/Splines/Editor/Icons/split_on_dark.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
112
Assets/Dreamteck/Splines/Editor/Icons/split_on_dark.png.meta
Normal file
@@ -0,0 +1,112 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 82ac2e1734f44b240ba37c540df9c80b
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 10
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
9
Assets/Dreamteck/Splines/Editor/Primitives.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 80ddc5178e2fd384f8d906e39bc9ea64
|
||||
folderAsset: yes
|
||||
timeCreated: 1455295601
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
29
Assets/Dreamteck/Splines/Editor/Primitives/CapsuleEditor.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
using Dreamteck.Splines.Editor;
|
||||
|
||||
namespace Dreamteck.Splines.Primitives
|
||||
{
|
||||
public class CapsuleEditor : PrimitiveEditor
|
||||
{
|
||||
public override string GetName()
|
||||
{
|
||||
return "Capsule";
|
||||
}
|
||||
|
||||
public override void Open(DreamteckSplinesEditor editor)
|
||||
{
|
||||
base.Open(editor);
|
||||
primitive = new Capsule();
|
||||
}
|
||||
|
||||
protected override void OnGUI()
|
||||
{
|
||||
base.OnGUI();
|
||||
Capsule capsule = (Capsule)primitive;
|
||||
capsule.radius = EditorGUILayout.FloatField("Radius", capsule.radius);
|
||||
capsule.height = EditorGUILayout.FloatField("Height", capsule.height);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 72fdbe7a4c526e048b71f939e9c0c73c
|
||||
timeCreated: 1455295805
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
32
Assets/Dreamteck/Splines/Editor/Primitives/EllipseEditor.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
using Dreamteck.Splines.Editor;
|
||||
|
||||
namespace Dreamteck.Splines.Primitives
|
||||
{
|
||||
public class EllipseEditor : PrimitiveEditor
|
||||
{
|
||||
|
||||
|
||||
public override string GetName()
|
||||
{
|
||||
return "Ellipse";
|
||||
}
|
||||
|
||||
public override void Open(DreamteckSplinesEditor editor)
|
||||
{
|
||||
base.Open(editor);
|
||||
primitive = new Ellipse();
|
||||
primitive.offset = origin;
|
||||
}
|
||||
|
||||
protected override void OnGUI()
|
||||
{
|
||||
base.OnGUI();
|
||||
Ellipse ellipse = (Ellipse)primitive;
|
||||
ellipse.xRadius = EditorGUILayout.FloatField("X Radius", ellipse.xRadius);
|
||||
ellipse.yRadius = EditorGUILayout.FloatField("Y Radius", ellipse.yRadius);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dbd2c446b47926347b9b126f60e16ad8
|
||||
timeCreated: 1455295805
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
31
Assets/Dreamteck/Splines/Editor/Primitives/LineEditor.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
using Dreamteck.Splines.Editor;
|
||||
|
||||
namespace Dreamteck.Splines.Primitives
|
||||
{
|
||||
public class LineEditor : PrimitiveEditor
|
||||
{
|
||||
public override string GetName()
|
||||
{
|
||||
return "Line";
|
||||
}
|
||||
|
||||
public override void Open(DreamteckSplinesEditor editor)
|
||||
{
|
||||
base.Open(editor);
|
||||
primitive = new Line();
|
||||
}
|
||||
|
||||
protected override void OnGUI()
|
||||
{
|
||||
base.OnGUI();
|
||||
Line line = (Line)primitive;
|
||||
line.length = EditorGUILayout.FloatField("Length", line.length);
|
||||
line.mirror = EditorGUILayout.Toggle("Mirror", line.mirror);
|
||||
line.rotation = EditorGUILayout.Vector3Field("Rotation", line.rotation);
|
||||
line.segments = EditorGUILayout.IntField("Segments", line.segments);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: db46236a6c24a02458ab53f69e482d9b
|
||||
timeCreated: 1455295805
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
30
Assets/Dreamteck/Splines/Editor/Primitives/NgonEditor.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
using Dreamteck.Splines.Editor;
|
||||
|
||||
namespace Dreamteck.Splines.Primitives
|
||||
{
|
||||
public class NgonEditor : PrimitiveEditor
|
||||
{
|
||||
public override string GetName()
|
||||
{
|
||||
return "Ngon";
|
||||
}
|
||||
|
||||
public override void Open(DreamteckSplinesEditor editor)
|
||||
{
|
||||
base.Open(editor);
|
||||
primitive = new Ngon();
|
||||
}
|
||||
|
||||
protected override void OnGUI()
|
||||
{
|
||||
base.OnGUI();
|
||||
Ngon ngon = (Ngon)primitive;
|
||||
ngon.radius = EditorGUILayout.FloatField("Radius", ngon.radius);
|
||||
ngon.sides = EditorGUILayout.IntField("Sides", ngon.sides);
|
||||
if (ngon.sides < 3) ngon.sides = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 77c0bc8ac03c5ef49b19f61d6b0d5e63
|
||||
timeCreated: 1455295805
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,59 @@
|
||||
namespace Dreamteck.Splines.Primitives
|
||||
{
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using System.Collections;
|
||||
using Dreamteck.Splines.Editor;
|
||||
|
||||
[System.Serializable]
|
||||
public class PrimitiveEditor
|
||||
{
|
||||
[System.NonSerialized]
|
||||
protected DreamteckSplinesEditor editor;
|
||||
[System.NonSerialized]
|
||||
public Vector3 origin = Vector3.zero;
|
||||
|
||||
protected SplinePrimitive primitive = new SplinePrimitive();
|
||||
|
||||
public virtual string GetName()
|
||||
{
|
||||
return "Primitive";
|
||||
}
|
||||
|
||||
public virtual void Open(DreamteckSplinesEditor editor)
|
||||
{
|
||||
this.editor = editor;
|
||||
primitive.is2D = editor.is2D;
|
||||
primitive.Calculate();
|
||||
}
|
||||
|
||||
public void Draw()
|
||||
{
|
||||
EditorGUI.BeginChangeCheck();
|
||||
OnGUI();
|
||||
if (EditorGUI.EndChangeCheck()) Update();
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
primitive.is2D = editor.is2D;
|
||||
primitive.Calculate();
|
||||
editor.points = primitive.GetPoints();
|
||||
editor.splineType = primitive.GetSplineType();
|
||||
editor.isClosed = primitive.GetIsClosed();
|
||||
}
|
||||
|
||||
protected virtual void OnGUI()
|
||||
{
|
||||
primitive.is2D = editor.is2D;
|
||||
primitive.offset = EditorGUILayout.Vector3Field("Offset", primitive.offset);
|
||||
if (editor.is2D)
|
||||
{
|
||||
float rot = primitive.rotation.z;
|
||||
rot = EditorGUILayout.FloatField("Rotation", rot);
|
||||
primitive.rotation = new Vector3(0f, 0f, rot);
|
||||
}
|
||||
else primitive.rotation = EditorGUILayout.Vector3Field("Rotation", primitive.rotation);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c64bf70078577534a9a2e5015c93459a
|
||||
timeCreated: 1455297834
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,29 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
using Dreamteck.Splines.Editor;
|
||||
|
||||
namespace Dreamteck.Splines.Primitives
|
||||
{
|
||||
public class RectangleEditor : PrimitiveEditor
|
||||
{
|
||||
public override string GetName()
|
||||
{
|
||||
return "Rectangle";
|
||||
}
|
||||
|
||||
public override void Open(DreamteckSplinesEditor editor)
|
||||
{
|
||||
base.Open(editor);
|
||||
primitive = new Rectangle();
|
||||
primitive.offset = origin;
|
||||
}
|
||||
|
||||
protected override void OnGUI()
|
||||
{
|
||||
base.OnGUI();
|
||||
Rectangle rect = (Rectangle)primitive;
|
||||
rect.size = EditorGUILayout.Vector2Field("Size", rect.size);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0f93155830fd1d14d889c002374573e8
|
||||
timeCreated: 1455295805
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,31 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
using Dreamteck.Splines.Editor;
|
||||
|
||||
namespace Dreamteck.Splines.Primitives
|
||||
{
|
||||
public class RoundedRectangleEditor : PrimitiveEditor
|
||||
{
|
||||
public override string GetName()
|
||||
{
|
||||
return "Rounded Rect";
|
||||
}
|
||||
|
||||
public override void Open(DreamteckSplinesEditor editor)
|
||||
{
|
||||
base.Open(editor);
|
||||
primitive = new RoundedRectangle();
|
||||
primitive.offset = origin;
|
||||
}
|
||||
|
||||
protected override void OnGUI()
|
||||
{
|
||||
base.OnGUI();
|
||||
RoundedRectangle rect = (RoundedRectangle)primitive;
|
||||
rect.size = EditorGUILayout.Vector2Field("Size", rect.size);
|
||||
rect.xRadius = EditorGUILayout.FloatField("X Radius", rect.xRadius);
|
||||
rect.yRadius = EditorGUILayout.FloatField("Y Radius", rect.yRadius);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 81b24eca83abc154581a3830334d1e26
|
||||
timeCreated: 1455295805
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
35
Assets/Dreamteck/Splines/Editor/Primitives/SpiralEditor.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
using Dreamteck.Splines.Editor;
|
||||
|
||||
namespace Dreamteck.Splines.Primitives
|
||||
{
|
||||
public class SpiralEditor : PrimitiveEditor
|
||||
{
|
||||
|
||||
public override string GetName()
|
||||
{
|
||||
return "Spiral";
|
||||
}
|
||||
|
||||
public override void Open(DreamteckSplinesEditor editor)
|
||||
{
|
||||
base.Open(editor);
|
||||
primitive = new Spiral();
|
||||
}
|
||||
|
||||
protected override void OnGUI()
|
||||
{
|
||||
base.OnGUI();
|
||||
Spiral spiral = (Spiral)primitive;
|
||||
spiral.clockwise = EditorGUILayout.Toggle("Clockwise", spiral.clockwise);
|
||||
spiral.curve = EditorGUILayout.CurveField("Radius Interpolation", spiral.curve);
|
||||
spiral.startRadius = EditorGUILayout.FloatField("Start Radius", spiral.startRadius);
|
||||
spiral.endRadius = EditorGUILayout.FloatField("End Radius", spiral.endRadius);
|
||||
spiral.stretch = EditorGUILayout.FloatField("Stretch", spiral.stretch);
|
||||
spiral.iterations = EditorGUILayout.IntField("Iterations", spiral.iterations);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2c5f355b780664e408027fdc7ce5a8d4
|
||||
timeCreated: 1455295805
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
31
Assets/Dreamteck/Splines/Editor/Primitives/StarEditor.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEditor;
|
||||
using Dreamteck.Splines.Editor;
|
||||
|
||||
namespace Dreamteck.Splines.Primitives
|
||||
{
|
||||
public class StarEditor : PrimitiveEditor
|
||||
{
|
||||
public override string GetName()
|
||||
{
|
||||
return "Star";
|
||||
}
|
||||
|
||||
public override void Open(DreamteckSplinesEditor editor)
|
||||
{
|
||||
base.Open(editor);
|
||||
primitive = new Star();
|
||||
}
|
||||
|
||||
protected override void OnGUI()
|
||||
{
|
||||
base.OnGUI();
|
||||
Star star = (Star)primitive;
|
||||
star.radius = EditorGUILayout.FloatField("Radius", star.radius);
|
||||
star.depth = EditorGUILayout.FloatField("Depth", star.depth);
|
||||
star.sides = EditorGUILayout.IntField("Sides", star.sides);
|
||||
if (star.sides < 3) star.sides = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4bb5e3d650b12b84a977fe5b175067b2
|
||||
timeCreated: 1455295805
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
229
Assets/Dreamteck/Splines/Editor/SplineComputerEditor.cs
Normal file
@@ -0,0 +1,229 @@
|
||||
namespace Dreamteck.Splines.Editor
|
||||
{
|
||||
using UnityEngine;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using Dreamteck.Editor;
|
||||
|
||||
[CustomEditor(typeof(SplineComputer), true)]
|
||||
[CanEditMultipleObjects]
|
||||
public partial class SplineComputerEditor : Editor
|
||||
{
|
||||
private Spline createPointVisualizer;
|
||||
|
||||
private List<int> selectedPoints = new List<int>();
|
||||
|
||||
public int[] pointSelection
|
||||
{
|
||||
get
|
||||
{
|
||||
return selectedPoints.ToArray();
|
||||
}
|
||||
}
|
||||
public bool mouseLeft = false;
|
||||
public bool mouseRight = false;
|
||||
public bool mouseLeftDown = false;
|
||||
public bool mouseRightDown = false;
|
||||
public bool mouseLeftUp = false;
|
||||
public bool mouserightUp = false;
|
||||
public bool control = false;
|
||||
public bool shift = false;
|
||||
public bool alt = false;
|
||||
public SplineComputer spline;
|
||||
public SplineComputer[] splines = new SplineComputer[0];
|
||||
|
||||
|
||||
protected bool closedOnMirror = false;
|
||||
|
||||
|
||||
public static bool hold = false;
|
||||
|
||||
DreamteckSplinesEditor pathEditor;
|
||||
ComputerEditor computerEditor;
|
||||
SplineTriggersEditor triggersEditor;
|
||||
SplineDebugEditor debugEditor;
|
||||
|
||||
public int selectedPointsCount
|
||||
{
|
||||
get { return selectedPoints.Count; }
|
||||
set { }
|
||||
}
|
||||
|
||||
|
||||
[MenuItem("GameObject/3D Object/Spline Computer")]
|
||||
private static void NewEmptySpline()
|
||||
{
|
||||
int count = GameObject.FindObjectsOfType<SplineComputer>().Length;
|
||||
string objName = "Spline";
|
||||
if (count > 0) objName += " " + count;
|
||||
GameObject obj = new GameObject(objName);
|
||||
obj.AddComponent<SplineComputer>();
|
||||
if (Selection.activeGameObject != null)
|
||||
{
|
||||
if (EditorUtility.DisplayDialog("Make child?", "Do you want to make the new spline a child of " + Selection.activeGameObject.name + "?", "Yes", "No"))
|
||||
{
|
||||
obj.transform.parent = Selection.activeGameObject.transform;
|
||||
obj.transform.localPosition = Vector3.zero;
|
||||
obj.transform.localRotation = Quaternion.identity;
|
||||
}
|
||||
}
|
||||
Selection.activeGameObject = obj;
|
||||
}
|
||||
|
||||
[MenuItem("GameObject/3D Object/Spline Node")]
|
||||
private static void NewSplineNode()
|
||||
{
|
||||
int count = Object.FindObjectsOfType<Node>().Length;
|
||||
string objName = "Node";
|
||||
if (count > 0) objName += " " + count;
|
||||
GameObject obj = new GameObject(objName);
|
||||
obj.AddComponent<Node>();
|
||||
if(Selection.activeGameObject != null)
|
||||
{
|
||||
if(EditorUtility.DisplayDialog("Make child?", "Do you want to make the new node a child of " + Selection.activeGameObject.name + "?", "Yes", "No"))
|
||||
{
|
||||
obj.transform.parent = Selection.activeGameObject.transform;
|
||||
obj.transform.localPosition = Vector3.zero;
|
||||
obj.transform.localRotation = Quaternion.identity;
|
||||
}
|
||||
}
|
||||
Selection.activeGameObject = obj;
|
||||
}
|
||||
|
||||
public void UndoRedoPerformed()
|
||||
{
|
||||
pathEditor.points = spline.GetPoints();
|
||||
pathEditor.UndoRedoPerformed();
|
||||
spline.EditorUpdateConnectedNodes();
|
||||
spline.Rebuild();
|
||||
}
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
EnableToolbar();
|
||||
splines = new SplineComputer[targets.Length];
|
||||
for (int i = 0; i < splines.Length; i++)
|
||||
{
|
||||
splines[i] = (SplineComputer)targets[i];
|
||||
splines[i].EditorAwake();
|
||||
}
|
||||
spline = splines[0];
|
||||
InitializeSplineEditor();
|
||||
InitializeComputerEditor();
|
||||
debugEditor = new SplineDebugEditor(spline);
|
||||
debugEditor.undoHandler += RecordUndo;
|
||||
debugEditor.repaintHandler += OnRepaint;
|
||||
triggersEditor = new SplineTriggersEditor(spline);
|
||||
triggersEditor.undoHandler += RecordUndo;
|
||||
triggersEditor.repaintHandler += OnRepaint;
|
||||
hold = false;
|
||||
#if UNITY_2019_1_OR_NEWER
|
||||
SceneView.beforeSceneGui += BeforeSceneGUI;
|
||||
#else
|
||||
SceneView.onSceneGUIDelegate += BeforeSceneGUI;
|
||||
#endif
|
||||
Undo.undoRedoPerformed += UndoRedoPerformed;
|
||||
}
|
||||
|
||||
void BeforeSceneGUI(SceneView current)
|
||||
{
|
||||
pathEditor.BeforeSceneGUI(current);
|
||||
}
|
||||
|
||||
void InitializeSplineEditor()
|
||||
{
|
||||
pathEditor = new DreamteckSplinesEditor(spline, "DreamteckSplines");
|
||||
pathEditor.undoHandler = RecordUndo;
|
||||
pathEditor.repaintHandler = OnRepaint;
|
||||
}
|
||||
|
||||
void InitializeComputerEditor()
|
||||
{
|
||||
computerEditor = new ComputerEditor(splines, serializedObject, pathEditor);
|
||||
computerEditor.undoHandler = RecordUndo;
|
||||
computerEditor.repaintHandler = OnRepaint;
|
||||
}
|
||||
|
||||
void RecordUndo(string title)
|
||||
{
|
||||
for (int i = 0; i < splines.Length; i++)
|
||||
{
|
||||
Undo.RecordObject(splines[i], title);
|
||||
}
|
||||
}
|
||||
|
||||
void OnRepaint()
|
||||
{
|
||||
SceneView.RepaintAll();
|
||||
Repaint();
|
||||
}
|
||||
|
||||
void OnDisable()
|
||||
{
|
||||
DisableToolbar();
|
||||
Undo.undoRedoPerformed -= UndoRedoPerformed;
|
||||
#if UNITY_2019_1_OR_NEWER
|
||||
SceneView.beforeSceneGui -= BeforeSceneGUI;
|
||||
#else
|
||||
SceneView.onSceneGUIDelegate -= BeforeSceneGUI;
|
||||
#endif
|
||||
pathEditor.Destroy();
|
||||
computerEditor.Destroy();
|
||||
debugEditor.Destroy();
|
||||
triggersEditor.Destroy();
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
base.OnInspectorGUI();
|
||||
spline = (SplineComputer)target;
|
||||
Undo.RecordObject(spline, "Edit Points");
|
||||
|
||||
if (splines.Length == 1)
|
||||
{
|
||||
SplineEditorGUI.BeginContainerBox(ref pathEditor.open, "Edit");
|
||||
if (pathEditor.open) pathEditor.DrawInspector();
|
||||
else if (pathEditor.lastEditorTool != Tool.None && Tools.current == Tool.None) Tools.current = pathEditor.lastEditorTool;
|
||||
SplineEditorGUI.EndContainerBox();
|
||||
}
|
||||
|
||||
SplineEditorGUI.BeginContainerBox(ref computerEditor.open, "Spline Computer");
|
||||
if (computerEditor.open) computerEditor.DrawInspector();
|
||||
SplineEditorGUI.EndContainerBox();
|
||||
|
||||
if (splines.Length == 1)
|
||||
{
|
||||
SplineEditorGUI.BeginContainerBox(ref triggersEditor.open, "Triggers");
|
||||
if (triggersEditor.open) triggersEditor.DrawInspector();
|
||||
SplineEditorGUI.EndContainerBox();
|
||||
|
||||
SplineEditorGUI.BeginContainerBox(ref debugEditor.open, "Info & Debug");
|
||||
if (debugEditor.open) debugEditor.DrawInspector();
|
||||
SplineEditorGUI.EndContainerBox();
|
||||
}
|
||||
|
||||
if (GUI.changed)
|
||||
{
|
||||
if (spline.isClosed) pathEditor.points[pathEditor.points.Length - 1] = pathEditor.points[0];
|
||||
EditorUtility.SetDirty(spline);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public bool IsPointSelected(int index)
|
||||
{
|
||||
return selectedPoints.Contains(index);
|
||||
}
|
||||
|
||||
void OnSceneGUI()
|
||||
{
|
||||
spline = (SplineComputer)target;
|
||||
debugEditor.DrawScene();
|
||||
computerEditor.drawComputer = !(pathEditor.currentModule is CreatePointModule);
|
||||
computerEditor.DrawScene();
|
||||
if (splines.Length == 1 && triggersEditor.open) triggersEditor.DrawScene();
|
||||
if (splines.Length == 1 && pathEditor.open) pathEditor.DrawScene();
|
||||
}
|
||||
}
|
||||
}
|
||||
12
Assets/Dreamteck/Splines/Editor/SplineComputerEditor.cs.meta
Normal file
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 445c3a8207a79a54bbdb6eeb52cb2492
|
||||
timeCreated: 1434317315
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
248
Assets/Dreamteck/Splines/Editor/SplineDrawer.cs
Normal file
@@ -0,0 +1,248 @@
|
||||
namespace Dreamteck.Splines.Editor
|
||||
{
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEditor.SceneManagement;
|
||||
|
||||
[InitializeOnLoad]
|
||||
public static class SplineDrawer
|
||||
{
|
||||
private static bool refreshComputers = false;
|
||||
private static List<SplineComputer> drawComputers = new List<SplineComputer>();
|
||||
private static Vector3[] positions = new Vector3[0];
|
||||
private static UnityEngine.SceneManagement.Scene currentScene;
|
||||
|
||||
static SplineDrawer()
|
||||
{
|
||||
#if UNITY_2019_1_OR_NEWER
|
||||
SceneView.duringSceneGui += AutoDrawComputers;
|
||||
#else
|
||||
SceneView.onSceneGUIDelegate += AutoDrawComputers;
|
||||
#endif
|
||||
|
||||
FindComputers();
|
||||
#if UNITY_2018_1_OR_NEWER
|
||||
EditorApplication.hierarchyChanged += HerarchyWindowChanged;
|
||||
#else
|
||||
EditorApplication.hierarchyWindowChanged += HerarchyWindowChanged;
|
||||
#endif
|
||||
|
||||
#if UNITY_2017_2_OR_NEWER
|
||||
EditorApplication.playModeStateChanged += ModeChanged;
|
||||
#else
|
||||
EditorApplication.playmodeStateChanged += ModeChanged;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#if UNITY_2017_2_OR_NEWER
|
||||
static void ModeChanged(PlayModeStateChange stateChange)
|
||||
{
|
||||
refreshComputers = true;
|
||||
}
|
||||
#else
|
||||
static void ModeChanged()
|
||||
{
|
||||
refreshComputers = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void HerarchyWindowChanged()
|
||||
{
|
||||
if (currentScene != EditorSceneManager.GetActiveScene())
|
||||
{
|
||||
currentScene = EditorSceneManager.GetActiveScene();
|
||||
FindComputers();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void FindComputers()
|
||||
{
|
||||
drawComputers.Clear();
|
||||
SplineComputer[] computers = GameObject.FindObjectsOfType<SplineComputer>();
|
||||
drawComputers.AddRange(computers);
|
||||
}
|
||||
|
||||
private static void AutoDrawComputers(SceneView current)
|
||||
{
|
||||
if (refreshComputers)
|
||||
{
|
||||
refreshComputers = false;
|
||||
FindComputers();
|
||||
}
|
||||
for (int i = 0; i < drawComputers.Count; i++)
|
||||
{
|
||||
if (!drawComputers[i].alwaysDraw)
|
||||
{
|
||||
drawComputers.RemoveAt(i);
|
||||
i--;
|
||||
continue;
|
||||
}
|
||||
DrawSplineComputer(drawComputers[i]);
|
||||
}
|
||||
}
|
||||
|
||||
public static void RegisterComputer(SplineComputer comp)
|
||||
{
|
||||
if (drawComputers.Contains(comp)) return;
|
||||
comp.alwaysDraw = true;
|
||||
drawComputers.Add(comp);
|
||||
}
|
||||
|
||||
public static void UnregisterComputer(SplineComputer comp)
|
||||
{
|
||||
for(int i = 0; i < drawComputers.Count; i++)
|
||||
{
|
||||
if(drawComputers[i] == comp)
|
||||
{
|
||||
drawComputers[i].alwaysDraw = false;
|
||||
drawComputers.RemoveAt(i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void DrawSplineComputer(SplineComputer comp, double fromPercent = 0.0, double toPercent = 1.0, float alpha = 1f)
|
||||
{
|
||||
if (comp == null) return;
|
||||
Color prevColor = Handles.color;
|
||||
Color handleColor = comp.editorPathColor;
|
||||
handleColor.a = alpha;
|
||||
Handles.color = handleColor;
|
||||
if (comp.pointCount < 2) return;
|
||||
|
||||
if (comp.type == Spline.Type.BSpline && comp.pointCount > 1)
|
||||
{
|
||||
SplinePoint[] compPoints = comp.GetPoints();
|
||||
Handles.color = new Color(handleColor.r, handleColor.g, handleColor.b, 0.5f * alpha);
|
||||
for (int i = 0; i < compPoints.Length - 1; i++) Handles.DrawLine(compPoints[i].position, compPoints[i + 1].position);
|
||||
Handles.color = handleColor;
|
||||
}
|
||||
|
||||
if (!comp.drawThinckness)
|
||||
{
|
||||
if (positions.Length != comp.sampleCount * 2) positions = new Vector3[comp.sampleCount * 2];
|
||||
Vector3 prevPoint = comp.EvaluatePosition(fromPercent);
|
||||
int pointIndex = 0;
|
||||
for (int i = 1; i < comp.sampleCount; i++)
|
||||
{
|
||||
positions[pointIndex] = prevPoint;
|
||||
pointIndex++;
|
||||
positions[pointIndex] = comp.samples[i].position;
|
||||
pointIndex++;
|
||||
prevPoint = positions[pointIndex - 1];
|
||||
}
|
||||
Handles.DrawLines(positions);
|
||||
}
|
||||
else
|
||||
{
|
||||
Transform editorCamera = SceneView.currentDrawingSceneView.camera.transform;
|
||||
if (positions.Length != comp.sampleCount * 6) positions = new Vector3[comp.sampleCount * 6];
|
||||
SplineSample prevResult = comp.Evaluate(fromPercent);
|
||||
Vector3 prevNormal = prevResult.up;
|
||||
if (comp.billboardThickness) prevNormal = (editorCamera.position - prevResult.position).normalized;
|
||||
Vector3 prevRight = Vector3.Cross(prevResult.forward, prevNormal).normalized * prevResult.size * 0.5f;
|
||||
int pointIndex = 0;
|
||||
for (int i = 1; i < comp.sampleCount; i++)
|
||||
{
|
||||
SplineSample newResult = comp.samples[i];
|
||||
Vector3 newNormal = newResult.up;
|
||||
if (comp.billboardThickness) newNormal = (editorCamera.position - newResult.position).normalized;
|
||||
Vector3 newRight = Vector3.Cross(newResult.forward, newNormal).normalized * newResult.size * 0.5f;
|
||||
|
||||
positions[pointIndex] = prevResult.position + prevRight;
|
||||
positions[pointIndex + comp.sampleCount * 2] = prevResult.position - prevRight;
|
||||
positions[pointIndex + comp.sampleCount * 4] = newResult.position - newRight;
|
||||
pointIndex++;
|
||||
positions[pointIndex] = newResult.position + newRight;
|
||||
positions[pointIndex + comp.sampleCount * 2] = newResult.position - newRight;
|
||||
positions[pointIndex + comp.sampleCount * 4] = newResult.position + newRight;
|
||||
pointIndex++;
|
||||
prevResult = newResult;
|
||||
prevRight = newRight;
|
||||
prevNormal = newNormal;
|
||||
}
|
||||
Handles.DrawLines(positions);
|
||||
}
|
||||
Handles.color = prevColor;
|
||||
}
|
||||
|
||||
static void DrawPath(ref Vector3[] points)
|
||||
{
|
||||
Vector3[] linePoints = new Vector3[points.Length * 2];
|
||||
Vector3 prevPoint = points[0];
|
||||
int pointIndex = 0;
|
||||
for (int currObjectIndex = 1; currObjectIndex < points.Length; currObjectIndex++)
|
||||
{
|
||||
linePoints[pointIndex] = prevPoint;
|
||||
pointIndex++;
|
||||
linePoints[pointIndex] = points[currObjectIndex];
|
||||
pointIndex++;
|
||||
prevPoint = points[currObjectIndex];
|
||||
}
|
||||
//Handles.DrawAAPolyLine(3f, linePoints);
|
||||
Handles.DrawLines(linePoints);
|
||||
}
|
||||
|
||||
public static void DrawSpline(Spline spline, Color color, double from = 0.0, double to = 1.0, bool drawThickness = false, bool thicknessAutoRotate = false)
|
||||
{
|
||||
double add = spline.moveStep;
|
||||
if (add < 0.0025) add = 0.0025;
|
||||
Color prevColor = Handles.color;
|
||||
Handles.color = color;
|
||||
int iterations = spline.iterations;
|
||||
if (drawThickness)
|
||||
{
|
||||
Transform editorCamera = SceneView.currentDrawingSceneView.camera.transform;
|
||||
if (positions.Length != iterations * 6) positions = new Vector3[iterations * 6];
|
||||
SplineSample prevResult = spline.Evaluate(from);
|
||||
Vector3 prevNormal = prevResult.up;
|
||||
if (thicknessAutoRotate) prevNormal = (editorCamera.position - prevResult.position).normalized;
|
||||
Vector3 prevRight = Vector3.Cross(prevResult.forward, prevNormal).normalized * prevResult.size * 0.5f;
|
||||
int pointIndex = 0;
|
||||
for (int i = 1; i < iterations; i++)
|
||||
{
|
||||
double p = DMath.Lerp(from, to, (double)i / (iterations - 1));
|
||||
SplineSample newResult = spline.Evaluate(p);
|
||||
Vector3 newNormal = newResult.up;
|
||||
if (thicknessAutoRotate) newNormal = (editorCamera.position - newResult.position).normalized;
|
||||
Vector3 newRight = Vector3.Cross(newResult.forward, newNormal).normalized * newResult.size * 0.5f;
|
||||
|
||||
positions[pointIndex] = prevResult.position + prevRight;
|
||||
positions[pointIndex + iterations * 2] = prevResult.position - prevRight;
|
||||
positions[pointIndex + iterations * 4] = newResult.position - newRight;
|
||||
pointIndex++;
|
||||
positions[pointIndex] = newResult.position + newRight;
|
||||
positions[pointIndex + iterations * 2] = newResult.position - newRight;
|
||||
positions[pointIndex + iterations * 4] = newResult.position + newRight;
|
||||
pointIndex++;
|
||||
prevResult = newResult;
|
||||
prevRight = newRight;
|
||||
prevNormal = newNormal;
|
||||
}
|
||||
Handles.DrawLines(positions);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (positions.Length != iterations * 2) positions = new Vector3[iterations * 2];
|
||||
Vector3 prevPoint = spline.EvaluatePosition(from);
|
||||
int pointIndex = 0;
|
||||
for (int i = 1; i < iterations; i++)
|
||||
{
|
||||
double p = DMath.Lerp(from, to, (double)i / (iterations - 1));
|
||||
positions[pointIndex] = prevPoint;
|
||||
pointIndex++;
|
||||
positions[pointIndex] = spline.EvaluatePosition(p);
|
||||
pointIndex++;
|
||||
prevPoint = positions[pointIndex - 1];
|
||||
}
|
||||
//Handles.DrawAAPolyLine(3f, positions);
|
||||
Handles.DrawLines(positions);
|
||||
}
|
||||
Handles.color = prevColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
12
Assets/Dreamteck/Splines/Editor/SplineDrawer.cs.meta
Normal file
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bb2a2a0ef9560854498c33329cd5bc53
|
||||
timeCreated: 1483909111
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Dreamteck/Splines/Editor/SplineEditor.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 30246f91b0df9f048a63873c72706a1a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 671f4a431b4054141ac528dc52c4772e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,434 @@
|
||||
namespace Dreamteck.Splines.Editor
|
||||
{
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
public class ComputerEditor : SplineEditorBase
|
||||
{
|
||||
SplineComputer spline = null;
|
||||
SplineComputer[] splines = new SplineComputer[0];
|
||||
SerializedObject serializedObject;
|
||||
bool pathToolsFoldout = false, interpolationFoldout = false;
|
||||
public bool drawComputer = true;
|
||||
public bool drawConnectedComputers = true;
|
||||
DreamteckSplinesEditor pathEditor;
|
||||
int operation = -1, module = -1, transformTool = 1;
|
||||
ComputerEditorModule[] modules = new ComputerEditorModule[0];
|
||||
Dreamteck.Editor.Toolbar utilityToolbar;
|
||||
Dreamteck.Editor.Toolbar operationsToolbar;
|
||||
Dreamteck.Editor.Toolbar transformToolbar;
|
||||
|
||||
public ComputerEditor(SplineComputer[] splines, SerializedObject serializedObject, DreamteckSplinesEditor pathEditor) : base()
|
||||
{
|
||||
spline = splines[0];
|
||||
this.splines = splines;
|
||||
this.pathEditor = pathEditor;
|
||||
this.serializedObject = serializedObject;
|
||||
modules = new ComputerEditorModule[2];
|
||||
modules[0] = new ComputerMergeModule(spline);
|
||||
modules[1] = new ComputerSplitModule(spline);
|
||||
GUIContent[] utilityContents = new GUIContent[modules.Length], utilityContentsSelected = new GUIContent[modules.Length];
|
||||
for (int i = 0; i < modules.Length; i++)
|
||||
{
|
||||
utilityContents[i] = modules[i].GetIconOff();
|
||||
utilityContentsSelected[i] = modules[i].GetIconOn();
|
||||
modules[i].undoHandler += OnRecordUndo;
|
||||
modules[i].repaintHandler += OnRepaint;
|
||||
}
|
||||
utilityToolbar = new Dreamteck.Editor.Toolbar(utilityContents, utilityContentsSelected, 35f);
|
||||
utilityToolbar.newLine = false;
|
||||
|
||||
|
||||
int index = 0;
|
||||
GUIContent[] transformContents = new GUIContent[4], transformContentsSelected = new GUIContent[4];
|
||||
transformContents[index] = new GUIContent("OFF");
|
||||
transformContentsSelected[index++] = new GUIContent("OFF");
|
||||
|
||||
transformContents[index] = EditorGUIUtility.IconContent("MoveTool");
|
||||
transformContentsSelected[index++] = EditorGUIUtility.IconContent("MoveTool On");
|
||||
|
||||
transformContents[index] = EditorGUIUtility.IconContent("RotateTool");
|
||||
transformContentsSelected[index++] = EditorGUIUtility.IconContent("RotateTool On");
|
||||
|
||||
transformContents[index] = EditorGUIUtility.IconContent("ScaleTool");
|
||||
transformContentsSelected[index] = EditorGUIUtility.IconContent("ScaleTool On");
|
||||
|
||||
transformToolbar = new Dreamteck.Editor.Toolbar(transformContents, transformContentsSelected, 35f);
|
||||
transformToolbar.newLine = false;
|
||||
|
||||
index = 0;
|
||||
GUIContent[] operationContents = new GUIContent[3], operationContentsSelected = new GUIContent[3];
|
||||
for (int i = 0; i < operationContents.Length; i++)
|
||||
{
|
||||
operationContents[i] = new GUIContent("");
|
||||
operationContentsSelected[i] = new GUIContent("");
|
||||
}
|
||||
operationsToolbar = new Dreamteck.Editor.Toolbar(operationContents, operationContentsSelected, 64f);
|
||||
operationsToolbar.newLine = false;
|
||||
}
|
||||
|
||||
void OnRecordUndo(string title)
|
||||
{
|
||||
if (undoHandler != null) undoHandler(title);
|
||||
}
|
||||
|
||||
void OnRepaint()
|
||||
{
|
||||
if (repaintHandler != null) repaintHandler();
|
||||
}
|
||||
|
||||
protected override void Load()
|
||||
{
|
||||
base.Load();
|
||||
pathToolsFoldout = LoadBool("DreamteckSplinesEditor.pathToolsFoldout", false);
|
||||
interpolationFoldout = LoadBool("DreamteckSplinesEditor.interpolationFoldout", false);
|
||||
transformTool = LoadInt("DreamteckSplinesEditor.transformTool", 0);
|
||||
}
|
||||
|
||||
protected override void Save()
|
||||
{
|
||||
base.Save();
|
||||
SaveBool("DreamteckSplinesEditor.pathToolsFoldout", pathToolsFoldout);
|
||||
SaveBool("DreamteckSplinesEditor.interpolationFoldout", interpolationFoldout);
|
||||
SaveInt("DreamteckSplinesEditor.transformTool", transformTool);
|
||||
}
|
||||
|
||||
public override void Destroy()
|
||||
{
|
||||
base.Destroy();
|
||||
for (int i = 0; i < modules.Length; i++) modules[i].Deselect();
|
||||
}
|
||||
|
||||
public override void DrawInspector()
|
||||
{
|
||||
base.DrawInspector();
|
||||
if (spline == null) return;
|
||||
SplineEditorGUI.SetHighlightColors(SplinePrefs.highlightColor, SplinePrefs.highlightContentColor);
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
GUILayout.FlexibleSpace();
|
||||
EditorGUI.BeginChangeCheck();
|
||||
operationsToolbar.SetContent(0, new GUIContent(spline.isClosed ? "Break" : "Close"));
|
||||
operationsToolbar.SetContent(1, new GUIContent("Reverse"));
|
||||
operationsToolbar.SetContent(2, new GUIContent(spline.is2D ? "3D Mode" : "2D Mode"));
|
||||
operationsToolbar.Draw(ref operation);
|
||||
//operation = GUILayout.Toolbar(operation, new string[] { , "Reverse", text2D }, GUILayout.Width(220f));
|
||||
if (EditorGUI.EndChangeCheck()) PerformOperation();
|
||||
EditorGUI.BeginChangeCheck();
|
||||
if (splines.Length == 1)
|
||||
{
|
||||
int mod = module;
|
||||
utilityToolbar.Draw(ref mod);
|
||||
if (EditorGUI.EndChangeCheck()) ToggleModule(mod);
|
||||
}
|
||||
GUILayout.FlexibleSpace();
|
||||
EditorGUILayout.EndHorizontal();
|
||||
if (module >= 0 && module < modules.Length) modules[module].DrawInspector();
|
||||
EditorGUILayout.Space();
|
||||
DreamteckEditorGUI.DrawSeparator();
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
serializedObject.Update();
|
||||
SerializedProperty splineProperty = serializedObject.FindProperty("spline");
|
||||
SerializedProperty sampleRate = serializedObject.FindProperty("spline").FindPropertyRelative("sampleRate");
|
||||
SerializedProperty type = serializedObject.FindProperty("spline").FindPropertyRelative("type");
|
||||
SerializedProperty linearAverageDirection = splineProperty.FindPropertyRelative("linearAverageDirection");
|
||||
SerializedProperty space = serializedObject.FindProperty("_space");
|
||||
SerializedProperty sampleMode = serializedObject.FindProperty("_sampleMode");
|
||||
SerializedProperty optimizeAngleThreshold = serializedObject.FindProperty("_optimizeAngleThreshold");
|
||||
SerializedProperty updateMode = serializedObject.FindProperty("updateMode");
|
||||
SerializedProperty rebuildOnAwake = serializedObject.FindProperty("rebuildOnAwake");
|
||||
SerializedProperty multithreaded = serializedObject.FindProperty("multithreaded");
|
||||
SerializedProperty customNormalInterpolation = splineProperty.FindPropertyRelative("customNormalInterpolation");
|
||||
SerializedProperty customValueInterpolation = splineProperty.FindPropertyRelative("customValueInterpolation");
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
Spline.Type lastType = (Spline.Type)type.intValue;
|
||||
EditorGUILayout.PropertyField(type);
|
||||
if(lastType == Spline.Type.Hermite && type.intValue == (int)Spline.Type.Bezier)
|
||||
{
|
||||
if(EditorUtility.DisplayDialog("Hermite to Bezier", "Would you like to retain the Hermite shape in Bezier mode?", "Yes", "No"))
|
||||
{
|
||||
for (int i = 0; i < splines.Length; i++) splines[i].HermiteToBezierTangents();
|
||||
|
||||
serializedObject.Update();
|
||||
pathEditor.Refresh();
|
||||
}
|
||||
}
|
||||
if(spline.type == Spline.Type.Linear) EditorGUILayout.PropertyField(linearAverageDirection);
|
||||
int lastSpace = space.intValue;
|
||||
EditorGUILayout.PropertyField(space, new GUIContent("Space"));
|
||||
EditorGUILayout.PropertyField(sampleMode, new GUIContent("Sample Mode"));
|
||||
if (sampleMode.intValue == (int)SplineComputer.SampleMode.Optimized) EditorGUILayout.PropertyField(optimizeAngleThreshold);
|
||||
EditorGUILayout.PropertyField(updateMode);
|
||||
if (updateMode.intValue == (int)SplineComputer.UpdateMode.None)
|
||||
{
|
||||
if (GUILayout.Button("Manual Update"))
|
||||
{
|
||||
for (int i = 0; i < splines.Length; i++) splines[i].RebuildImmediate(true, true);
|
||||
}
|
||||
}
|
||||
if (spline.type != Spline.Type.Linear) EditorGUILayout.PropertyField(sampleRate, new GUIContent("Sample Rate"));
|
||||
EditorGUILayout.PropertyField(rebuildOnAwake);
|
||||
EditorGUILayout.PropertyField(multithreaded);
|
||||
|
||||
EditorGUI.indentLevel++;
|
||||
bool curveUpdate = false;
|
||||
interpolationFoldout = EditorGUILayout.Foldout(interpolationFoldout, "Custom interpolation");
|
||||
if (interpolationFoldout)
|
||||
{
|
||||
if (customValueInterpolation.animationCurveValue == null || customValueInterpolation.animationCurveValue.keys.Length == 0)
|
||||
{
|
||||
if (GUILayout.Button("Add Value Interpolation"))
|
||||
{
|
||||
AnimationCurve curve = new AnimationCurve();
|
||||
curve.AddKey(new Keyframe(0, 0, 0, 0));
|
||||
curve.AddKey(new Keyframe(1, 1, 0, 0));
|
||||
for (int i = 0; i < splines.Length; i++) splines[i].customValueInterpolation = curve;
|
||||
serializedObject.Update();
|
||||
curveUpdate = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
EditorGUILayout.PropertyField(customValueInterpolation, new GUIContent("Value Interpolation"));
|
||||
if (GUILayout.Button("x", GUILayout.MaxWidth(25)))
|
||||
{
|
||||
customValueInterpolation.animationCurveValue = null;
|
||||
for (int i = 0; i < splines.Length; i++) splines[i].customValueInterpolation = null;
|
||||
serializedObject.Update();
|
||||
curveUpdate = true;
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
}
|
||||
if (customNormalInterpolation.animationCurveValue == null || customNormalInterpolation.animationCurveValue.keys.Length == 0)
|
||||
{
|
||||
if (GUILayout.Button("Add Normal Interpolation"))
|
||||
{
|
||||
AnimationCurve curve = new AnimationCurve();
|
||||
curve.AddKey(new Keyframe(0, 0));
|
||||
curve.AddKey(new Keyframe(1, 1));
|
||||
for (int i = 0; i < splines.Length; i++) splines[i].customNormalInterpolation = curve;
|
||||
serializedObject.Update();
|
||||
curveUpdate = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
EditorGUILayout.PropertyField(customNormalInterpolation, new GUIContent("Normal Interpolation"));
|
||||
if (GUILayout.Button("x", GUILayout.MaxWidth(25)))
|
||||
{
|
||||
customNormalInterpolation.animationCurveValue = null;
|
||||
for (int i = 0; i < splines.Length; i++) splines[i].customNormalInterpolation = null;
|
||||
serializedObject.Update();
|
||||
curveUpdate = true;
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
}
|
||||
}
|
||||
|
||||
EditorGUI.indentLevel--;
|
||||
|
||||
if (EditorGUI.EndChangeCheck() || curveUpdate)
|
||||
{
|
||||
if (sampleRate.intValue < 2) sampleRate.intValue = 2;
|
||||
if (lastSpace != space.intValue)
|
||||
{
|
||||
for (int i = 0; i < splines.Length; i++) splines[i].space = (SplineComputer.Space)space.intValue;
|
||||
serializedObject.Update();
|
||||
if (splines.Length == 1) pathEditor.Refresh();
|
||||
}
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
for (int i = 0; i < splines.Length; i++) splines[i].Rebuild(true);
|
||||
}
|
||||
|
||||
if (space.intValue == (int)SplineComputer.Space.Local)
|
||||
{
|
||||
if (pathEditor.currentModule != null) transformTool = 0;
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
GUILayout.Label("Edit Transform");
|
||||
GUILayout.FlexibleSpace();
|
||||
int lastTool = transformTool;
|
||||
transformToolbar.Draw(ref transformTool);
|
||||
if (lastTool != transformTool && transformTool > 0) pathEditor.UntoggleCurrentModule();
|
||||
EditorGUILayout.EndHorizontal();
|
||||
}
|
||||
}
|
||||
|
||||
void PerformOperation()
|
||||
{
|
||||
switch (operation)
|
||||
{
|
||||
case 0:
|
||||
if (spline.isClosed) BreakSpline();
|
||||
else CloseSpline();
|
||||
operation = -1;
|
||||
break;
|
||||
case 1:
|
||||
ReversePointOrder();
|
||||
operation = -1;
|
||||
break;
|
||||
case 2:
|
||||
spline.is2D = !spline.is2D;
|
||||
operation = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ToggleModule(int index)
|
||||
{
|
||||
if (module >= 0 && module < modules.Length) modules[module].Deselect();
|
||||
if (module == index) index = -1;
|
||||
module = index;
|
||||
if (module >= 0 && module < modules.Length) modules[module].Select();
|
||||
}
|
||||
|
||||
public void BreakSpline()
|
||||
{
|
||||
RecordUndo("Break path");
|
||||
if (splines.Length == 1 && pathEditor.selectedPoints.Count == 1) spline.Break(pathEditor.selectedPoints[0]);
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < splines.Length; i++) splines[i].Break();
|
||||
}
|
||||
}
|
||||
|
||||
public void CloseSpline()
|
||||
{
|
||||
RecordUndo("Close path");
|
||||
for (int i = 0; i < splines.Length; i++)
|
||||
{
|
||||
splines[i].Close();
|
||||
}
|
||||
}
|
||||
|
||||
void ReversePointOrder()
|
||||
{
|
||||
for (int i = 0; i < splines.Length; i++)
|
||||
{
|
||||
ReversePointOrder(splines[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void ReversePointOrder(SplineComputer spline)
|
||||
{
|
||||
SplinePoint[] points = spline.GetPoints();
|
||||
for (int i = 0; i < Mathf.FloorToInt(points.Length / 2); i++)
|
||||
{
|
||||
SplinePoint temp = points[i];
|
||||
points[i] = points[(points.Length - 1) - i];
|
||||
Vector3 tempTan = points[i].tangent;
|
||||
points[i].tangent = points[i].tangent2;
|
||||
points[i].tangent2 = tempTan;
|
||||
int opposideIndex = (points.Length - 1) - i;
|
||||
points[opposideIndex] = temp;
|
||||
tempTan = points[opposideIndex].tangent;
|
||||
points[opposideIndex].tangent = points[opposideIndex].tangent2;
|
||||
points[opposideIndex].tangent2 = tempTan;
|
||||
}
|
||||
if (points.Length % 2 != 0)
|
||||
{
|
||||
Vector3 tempTan = points[Mathf.CeilToInt(points.Length / 2)].tangent;
|
||||
points[Mathf.CeilToInt(points.Length / 2)].tangent = points[Mathf.CeilToInt(points.Length / 2)].tangent2;
|
||||
points[Mathf.CeilToInt(points.Length / 2)].tangent2 = tempTan;
|
||||
}
|
||||
spline.SetPoints(points);
|
||||
}
|
||||
|
||||
public override void DrawScene()
|
||||
{
|
||||
base.DrawScene();
|
||||
if (drawComputer)
|
||||
{
|
||||
for (int i = 0; i < splines.Length; i++)
|
||||
{
|
||||
SplineDrawer.DrawSplineComputer(splines[i]);
|
||||
}
|
||||
|
||||
}
|
||||
if (drawConnectedComputers)
|
||||
{
|
||||
for (int i = 0; i < splines.Length; i++)
|
||||
{
|
||||
List<SplineComputer> computers = splines[i].GetConnectedComputers();
|
||||
for (int j = 1; j < computers.Count; j++)
|
||||
{
|
||||
SplineDrawer.DrawSplineComputer(computers[j], 0.0, 1.0, 0.5f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (pathEditor.currentModule == null)
|
||||
{
|
||||
switch (transformTool)
|
||||
{
|
||||
case 1:
|
||||
for (int i = 0; i < splines.Length; i++)
|
||||
{
|
||||
Vector3 position = splines[i].transform.position;
|
||||
position = Handles.PositionHandle(position, splines[i].transform.rotation);
|
||||
if (position != splines[i].transform.position)
|
||||
{
|
||||
RecordUndo("Move spline computer");
|
||||
Undo.RecordObject(splines[i].transform, "Move spline computer");
|
||||
splines[i].transform.position = position;
|
||||
splines[i].SetPoints(pathEditor.points);
|
||||
pathEditor.Refresh();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
for (int i = 0; i < splines.Length; i++)
|
||||
{
|
||||
Quaternion rotation = splines[i].transform.rotation;
|
||||
rotation = Handles.RotationHandle(rotation, splines[i].transform.position);
|
||||
if (rotation != splines[i].transform.rotation)
|
||||
{
|
||||
RecordUndo("Rotate spline computer");
|
||||
Undo.RecordObject(splines[i].transform, "Rotate spline computer");
|
||||
splines[i].transform.rotation = rotation;
|
||||
splines[i].SetPoints(pathEditor.points);
|
||||
pathEditor.Refresh();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
for (int i = 0; i < splines.Length; i++)
|
||||
{
|
||||
Vector3 scale = splines[i].transform.localScale;
|
||||
scale = Handles.ScaleHandle(scale, splines[i].transform.position, splines[i].transform.rotation,
|
||||
HandleUtility.GetHandleSize(splines[i].transform.position));
|
||||
if (scale != splines[i].transform.localScale)
|
||||
{
|
||||
RecordUndo("Scale spline computer");
|
||||
Undo.RecordObject(splines[i].transform, "Scale spline computer");
|
||||
splines[i].transform.localScale = scale;
|
||||
splines[i].SetPoints(pathEditor.points);
|
||||
pathEditor.Refresh();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (transformTool > 0)
|
||||
{
|
||||
for (int i = 0; i < splines.Length; i++)
|
||||
{
|
||||
Vector2 screenPosition = HandleUtility.WorldToGUIPoint(splines[i].transform.position);
|
||||
screenPosition.y += 20f;
|
||||
Handles.BeginGUI();
|
||||
DreamteckEditorGUI.Label(new Rect(screenPosition.x - 120 + splines[i].name.Length * 4, screenPosition.y, 120, 25), splines[i].name);
|
||||
Handles.EndGUI();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if (module >= 0 && module < modules.Length) modules[module].DrawScene();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e59af6b243fa55640b014783bedaaae3
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,31 @@
|
||||
namespace Dreamteck.Splines.Editor
|
||||
{
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
public class ComputerEditorModule : EditorModule
|
||||
{
|
||||
protected SplineComputer spline;
|
||||
public SplineEditorBase.UndoHandler undoHandler;
|
||||
public EmptySplineHandler repaintHandler;
|
||||
|
||||
public ComputerEditorModule(SplineComputer spline)
|
||||
{
|
||||
this.spline = spline;
|
||||
}
|
||||
|
||||
protected override void RecordUndo(string title)
|
||||
{
|
||||
base.RecordUndo(title);
|
||||
if (undoHandler != null) undoHandler(title);
|
||||
}
|
||||
|
||||
protected override void Repaint()
|
||||
{
|
||||
base.Repaint();
|
||||
if (repaintHandler != null) repaintHandler();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 17f0469145b8d194f8e96c0e083d5b72
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,209 @@
|
||||
namespace Dreamteck.Splines.Editor
|
||||
{
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
|
||||
public class ComputerMergeModule : ComputerEditorModule
|
||||
{
|
||||
SplineComputer[] availableMergeComputers = new SplineComputer[0];
|
||||
public enum MergeSide { Start, End }
|
||||
public MergeSide mergeSide = MergeSide.End;
|
||||
public bool mergeEndpoints = false;
|
||||
|
||||
public ComputerMergeModule(SplineComputer spline) : base(spline)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override GUIContent GetIconOff()
|
||||
{
|
||||
return IconContent("Merge", "merge", "Merge Splines");
|
||||
}
|
||||
|
||||
public override GUIContent GetIconOn()
|
||||
{
|
||||
return IconContent("Merge", "merge_on", "Merge Splines");
|
||||
}
|
||||
|
||||
public override void LoadState()
|
||||
{
|
||||
mergeEndpoints = LoadBool("mergeEndpoints");
|
||||
mergeSide = (MergeSide)LoadInt("mergeSide");
|
||||
}
|
||||
|
||||
public override void SaveState()
|
||||
{
|
||||
SaveBool("mergeEndpoints", mergeEndpoints);
|
||||
SaveInt("mergeSide", (int)mergeSide);
|
||||
}
|
||||
|
||||
public override void Select()
|
||||
{
|
||||
base.Select();
|
||||
FindAvailableComputers();
|
||||
}
|
||||
|
||||
void FindAvailableComputers()
|
||||
{
|
||||
SplineComputer[] found = Object.FindObjectsOfType<SplineComputer>();
|
||||
List<SplineComputer> available = new List<SplineComputer>();
|
||||
for (int i = 0; i < found.Length; i++)
|
||||
{
|
||||
if (found[i] != spline && !found[i].isClosed && spline.pointCount >= 2) available.Add(found[i]);
|
||||
}
|
||||
availableMergeComputers = available.ToArray();
|
||||
}
|
||||
|
||||
public override void DrawScene()
|
||||
{
|
||||
base.DrawScene();
|
||||
if (spline.isClosed) return;
|
||||
Camera editorCamera = SceneView.currentDrawingSceneView.camera;
|
||||
for (int i = 0; i < availableMergeComputers.Length; i++)
|
||||
{
|
||||
SplineDrawer.DrawSplineComputer(availableMergeComputers[i]);
|
||||
SplinePoint startPoint = availableMergeComputers[i].GetPoint(0);
|
||||
SplinePoint endPoint = availableMergeComputers[i].GetPoint(availableMergeComputers[i].pointCount - 1);
|
||||
Handles.color = availableMergeComputers[i].editorPathColor;
|
||||
|
||||
if (SplineEditorHandles.CircleButton(startPoint.position, Quaternion.LookRotation(editorCamera.transform.position - startPoint.position), HandleUtility.GetHandleSize(startPoint.position) * 0.15f, 1f, availableMergeComputers[i].editorPathColor))
|
||||
{
|
||||
Merge(i, MergeSide.Start);
|
||||
break;
|
||||
}
|
||||
if (SplineEditorHandles.CircleButton(endPoint.position, Quaternion.LookRotation(editorCamera.transform.position - endPoint.position), HandleUtility.GetHandleSize(endPoint.position) * 0.15f, 1f, availableMergeComputers[i].editorPathColor))
|
||||
{
|
||||
Merge(i, MergeSide.End);
|
||||
break;
|
||||
}
|
||||
}
|
||||
Handles.color = Color.white;
|
||||
}
|
||||
|
||||
public override void DrawInspector()
|
||||
{
|
||||
base.DrawInspector();
|
||||
if (spline.isClosed)
|
||||
{
|
||||
EditorGUILayout.LabelField("Closed splines cannot be merged with others.", EditorStyles.centeredGreyMiniLabel);
|
||||
return;
|
||||
}
|
||||
mergeSide = (MergeSide)EditorGUILayout.EnumPopup("Merge:", mergeSide);
|
||||
mergeEndpoints = EditorGUILayout.Toggle("Merge Endpoints", mergeEndpoints);
|
||||
}
|
||||
|
||||
void Merge(int index, MergeSide mergingSide)
|
||||
{
|
||||
RecordUndo("Merge Splines");
|
||||
SplineComputer mergedSpline = availableMergeComputers[index];
|
||||
SplinePoint[] mergedPoints = mergedSpline.GetPoints();
|
||||
SplinePoint[] original = spline.GetPoints();
|
||||
List<SplinePoint> pointsList = new List<SplinePoint>();
|
||||
SplinePoint[] points;
|
||||
if (!mergeEndpoints) points = new SplinePoint[mergedPoints.Length + original.Length];
|
||||
else points = new SplinePoint[mergedPoints.Length + original.Length - 1];
|
||||
|
||||
if(mergeSide == MergeSide.End)
|
||||
{
|
||||
if(mergingSide == MergeSide.Start)
|
||||
{
|
||||
for (int i = 0; i < original.Length; i++) pointsList.Add(original[i]);
|
||||
for (int i = mergeEndpoints ? 1 : 0; i < mergedPoints.Length; i++) pointsList.Add(mergedPoints[i]);
|
||||
} else
|
||||
{
|
||||
for (int i = 0; i < original.Length; i++) pointsList.Add(original[i]);
|
||||
for (int i = 0; i < mergedPoints.Length - (mergeEndpoints ? 1 : 0); i++) pointsList.Add(mergedPoints[(mergedPoints.Length-1)-i]);
|
||||
}
|
||||
} else
|
||||
{
|
||||
if (mergingSide == MergeSide.Start)
|
||||
{
|
||||
for (int i = 0; i < mergedPoints.Length - (mergeEndpoints ? 1 : 0); i++) pointsList.Add(mergedPoints[(mergedPoints.Length - 1) - i]);
|
||||
for (int i = 0; i < original.Length; i++) pointsList.Add(original[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = mergeEndpoints ? 1 : 0; i < mergedPoints.Length; i++) pointsList.Add(mergedPoints[i]);
|
||||
for (int i = 0; i < original.Length; i++) pointsList.Add(original[i]);
|
||||
}
|
||||
}
|
||||
points = pointsList.ToArray();
|
||||
double mergedPercent = (double)(mergedPoints.Length-1) / (points.Length-1);
|
||||
double from = 0.0;
|
||||
double to = 1.0;
|
||||
if (mergeSide == MergeSide.End)
|
||||
{
|
||||
from = 1.0 - mergedPercent;
|
||||
to = 1.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
from = 0.0;
|
||||
to = mergedPercent;
|
||||
}
|
||||
|
||||
|
||||
List<Node> mergedNodes = new List<Node>();
|
||||
List<int> mergedIndices = new List<int>();
|
||||
|
||||
for (int i = 0; i < mergedSpline.pointCount; i++)
|
||||
{
|
||||
Node node = mergedSpline.GetNode(i);
|
||||
if (node != null)
|
||||
{
|
||||
mergedNodes.Add(node);
|
||||
mergedIndices.Add(i);
|
||||
Undo.RecordObject(node, "Disconnect Node");
|
||||
mergedSpline.DisconnectNode(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
|
||||
SplineUser[] subs = mergedSpline.GetSubscribers();
|
||||
for (int i = 0; i < subs.Length; i++)
|
||||
{
|
||||
mergedSpline.Unsubscribe(subs[i]);
|
||||
subs[i].spline = spline;
|
||||
subs[i].clipFrom = DMath.Lerp(from, to, subs[i].clipFrom);
|
||||
subs[i].clipTo = DMath.Lerp(from, to, subs[i].clipTo);
|
||||
}
|
||||
spline.SetPoints(points);
|
||||
|
||||
if (mergeSide == MergeSide.Start)
|
||||
{
|
||||
spline.ShiftNodes(0, spline.pointCount - 1, mergedSpline.pointCount);
|
||||
for (int i = 0; i < mergedNodes.Count; i++)
|
||||
{
|
||||
spline.ConnectNode(mergedNodes[i], mergedIndices[i]);
|
||||
}
|
||||
} else
|
||||
{
|
||||
for (int i = 0; i < mergedNodes.Count; i++)
|
||||
{
|
||||
int connectIndex = mergedIndices[i] + original.Length;
|
||||
if (mergeEndpoints) connectIndex--;
|
||||
spline.ConnectNode(mergedNodes[i], connectIndex);
|
||||
}
|
||||
}
|
||||
if (EditorUtility.DisplayDialog("Keep merged computer's GameObject?", "Do you want to keep the merged computer's game object?", "Yes", "No"))
|
||||
{
|
||||
Undo.DestroyObjectImmediate(mergedSpline);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < mergedNodes.Count; i++)
|
||||
{
|
||||
if(TransformUtility.IsParent(mergedNodes[i].transform, mergedSpline.transform))
|
||||
{
|
||||
Undo.SetTransformParent(mergedNodes[i].transform, mergedSpline.transform.parent, "Reparent Node");
|
||||
}
|
||||
}
|
||||
Undo.DestroyObjectImmediate(mergedSpline.gameObject);
|
||||
}
|
||||
|
||||
FindAvailableComputers();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50db3c9801774b24cbb81bdf47a3f852
|
||||
timeCreated: 1476814299
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,114 @@
|
||||
namespace Dreamteck.Splines.Editor
|
||||
{
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
public class DSCreatePointModule : CreatePointModule
|
||||
{
|
||||
DreamteckSplinesEditor dsEditor;
|
||||
private bool createNode = false;
|
||||
|
||||
|
||||
public DSCreatePointModule(SplineEditor editor) : base(editor)
|
||||
{
|
||||
dsEditor = (DreamteckSplinesEditor)editor;
|
||||
}
|
||||
|
||||
public override void LoadState()
|
||||
{
|
||||
base.LoadState();
|
||||
createNode = LoadBool("createNode");
|
||||
}
|
||||
|
||||
public override void SaveState()
|
||||
{
|
||||
base.SaveState();
|
||||
SaveBool("createNode", createNode);
|
||||
}
|
||||
|
||||
public override void DrawInspector()
|
||||
{
|
||||
base.DrawInspector();
|
||||
createNode = EditorGUILayout.Toggle("Create Node", createNode);
|
||||
}
|
||||
|
||||
protected override void CreateSplinePoint(Vector3 position, Vector3 normal)
|
||||
{
|
||||
RecordUndo("Create Point");
|
||||
GUIUtility.hotControl = GUIUtility.GetControlID(FocusType.Passive);
|
||||
List<int> indices = new List<int>();
|
||||
List<Node> nodes = new List<Node>();
|
||||
SplineComputer spline = dsEditor.spline;
|
||||
AddPoint();
|
||||
bool closeSpline = false;
|
||||
if (!isClosed && points.Length >= 3)
|
||||
{
|
||||
Vector2 first = HandleUtility.WorldToGUIPoint(points[0].position);
|
||||
Vector2 last = HandleUtility.WorldToGUIPoint(points[points.Length - 1].position);
|
||||
if (Vector2.Distance(first, last) <= 20f) if (EditorUtility.DisplayDialog("Close spline?", "Do you want to make the spline path closed ?", "Yes", "No")) closeSpline = true;
|
||||
}
|
||||
|
||||
if (appendMode == AppendMode.End)
|
||||
{
|
||||
for (int i = 0; i < indices.Count; i++) nodes[i].AddConnection(spline, indices[i] + 1);
|
||||
}
|
||||
|
||||
if (createNode)
|
||||
{
|
||||
if (appendMode == 0) CreateNodeForPoint(points.Length - 1);
|
||||
else CreateNodeForPoint(0);
|
||||
}
|
||||
if (closeSpline) editor.isClosed = true;
|
||||
dsEditor.UpdateSpline();
|
||||
if (appendMode == AppendMode.Beginning) spline.ShiftNodes(0, spline.pointCount-1, 1);
|
||||
}
|
||||
|
||||
protected override void InsertMode(Vector3 screenCoordinates)
|
||||
{
|
||||
base.InsertMode(screenCoordinates);
|
||||
double percent = ProjectScreenSpace(screenCoordinates);
|
||||
editor.evaluate(percent, evalResult);
|
||||
if (editor.eventModule.mouseRight)
|
||||
{
|
||||
SplineEditorHandles.DrawCircle(evalResult.position, Quaternion.LookRotation(editorCamera.transform.position - evalResult.position), HandleUtility.GetHandleSize(evalResult.position) * 0.2f);
|
||||
return;
|
||||
}
|
||||
if (SplineEditorHandles.CircleButton(evalResult.position, Quaternion.LookRotation(editorCamera.transform.position - evalResult.position), HandleUtility.GetHandleSize(evalResult.position) * 0.2f, 1.5f, color))
|
||||
{
|
||||
RecordUndo("Create Point");
|
||||
SplinePoint newPoint = new SplinePoint(evalResult.position, evalResult.position);
|
||||
newPoint.size = evalResult.size;
|
||||
newPoint.color = evalResult.color;
|
||||
newPoint.normal = evalResult.up;
|
||||
SplinePoint[] newPoints = new SplinePoint[points.Length + 1];
|
||||
double floatIndex = (points.Length - 1) * percent;
|
||||
int pointIndex = Mathf.Clamp(DMath.FloorInt(floatIndex), 0, points.Length - 2);
|
||||
for (int i = 0; i < newPoints.Length; i++)
|
||||
{
|
||||
if (i <= pointIndex) newPoints[i] = points[i];
|
||||
else if (i == pointIndex + 1) newPoints[i] = newPoint;
|
||||
else newPoints[i] = points[i - 1];
|
||||
}
|
||||
SplineComputer spline = dsEditor.spline;
|
||||
points = newPoints;
|
||||
lastCreated = points.Length - 1;
|
||||
dsEditor.UpdateSpline();
|
||||
spline.ShiftNodes(pointIndex + 1, spline.pointCount - 1, 1);
|
||||
if (createNode) CreateNodeForPoint(pointIndex + 1);
|
||||
}
|
||||
}
|
||||
|
||||
void CreateNodeForPoint(int index)
|
||||
{
|
||||
dsEditor.UpdateSpline();
|
||||
GameObject obj = new GameObject("Node_" + (points.Length - 1));
|
||||
obj.transform.parent = dsEditor.spline.transform;
|
||||
Node node = obj.AddComponent<Node>();
|
||||
node.transform.localRotation = Quaternion.identity;
|
||||
node.transform.position = points[index].position;
|
||||
node.AddConnection(dsEditor.spline, index);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 870db4c17be74374e93a8dbc31114a05
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,164 @@
|
||||
namespace Dreamteck.Splines.Editor
|
||||
{
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
public class DreamteckSplinesEditor : SplineEditor
|
||||
{
|
||||
public SplineComputer spline = null;
|
||||
|
||||
public DreamteckSplinesEditor(SplineComputer spline, string name) : base (spline.transform, name)
|
||||
{
|
||||
this.spline = spline;
|
||||
evaluate = spline.Evaluate;
|
||||
evaluateAtPoint = spline.Evaluate;
|
||||
evaluatePosition = spline.EvaluatePosition;
|
||||
calculateLength = spline.CalculateLength;
|
||||
travel = spline.Travel;
|
||||
undoHandler = HandleUndo;
|
||||
mainModule.onBeforeDeleteSelectedPoints += OnBeforeDeleteSelectedPoints;
|
||||
mainModule.onDuplicatePoint += OnDuplicatePoint;
|
||||
if (spline.isNewlyCreated)
|
||||
{
|
||||
if (SplinePrefs.startInCreationMode)
|
||||
{
|
||||
open = true;
|
||||
ToggleModule(0);
|
||||
}
|
||||
spline.isNewlyCreated = false;
|
||||
}
|
||||
Refresh();
|
||||
}
|
||||
|
||||
private void OnDuplicatePoint(int[] points)
|
||||
{
|
||||
for (int i = 0; i < points.Length; i++)
|
||||
{
|
||||
spline.ShiftNodes(points[i], spline.pointCount - 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnBeforeDeleteSelectedPoints()
|
||||
{
|
||||
string nodeString = "";
|
||||
List <Node> deleteNodes = new List<Node>();
|
||||
for (int i = 0; i < selectedPoints.Count; i++)
|
||||
{
|
||||
spline.DisconnectNode(selectedPoints[i]);
|
||||
Node node = spline.GetNode(selectedPoints[i]);
|
||||
if (node != null && node.GetConnections().Length == 0)
|
||||
{
|
||||
deleteNodes.Add(node);
|
||||
if (nodeString != "") nodeString += ", ";
|
||||
string trimmed = node.name.Trim();
|
||||
if (nodeString.Length + trimmed.Length > 80) nodeString += "...";
|
||||
else nodeString += node.name.Trim();
|
||||
}
|
||||
}
|
||||
|
||||
if (deleteNodes.Count > 0)
|
||||
{
|
||||
string message = "The following nodes:\r\n" + nodeString + "\r\n were only connected to the currently selected points. Would you like to remove them from the scene?";
|
||||
if (EditorUtility.DisplayDialog("Remove nodes?", message, "Yes", "No"))
|
||||
{
|
||||
for (int i = 0; i < deleteNodes.Count; i++) Undo.DestroyObjectImmediate(deleteNodes[i].gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
int min = spline.pointCount - 1;
|
||||
for (int i = 0; i < selectedPoints.Count; i++)
|
||||
{
|
||||
if (selectedPoints[i] < min) min = selectedPoints[i];
|
||||
}
|
||||
for (int i = min+1; i < spline.pointCount; i++)
|
||||
{
|
||||
Node node = spline.GetNode(i);
|
||||
if(node != null)
|
||||
{
|
||||
int pointsDeletedBefore = 0;
|
||||
for (int j = 0; j < selectedPoints.Count; j++)
|
||||
{
|
||||
if (selectedPoints[j] >= min) pointsDeletedBefore++;
|
||||
}
|
||||
spline.ShiftNodes(i, spline.pointCount-1, -pointsDeletedBefore);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected override void OnModuleList(List<PointModule> list)
|
||||
{
|
||||
list.Add(new DSCreatePointModule(this));
|
||||
list.Add(new DeletePointModule(this));
|
||||
list.Add(new PointMoveModule(this));
|
||||
list.Add(new PointRotateModule(this));
|
||||
list.Add(new PointScaleModule(this));
|
||||
list.Add(new PointNormalModule(this));
|
||||
list.Add(new PointMirrorModule(this));
|
||||
#if DREAMTECK_SPLINES
|
||||
list.Add(new PrimitivesModule(this));
|
||||
#endif
|
||||
}
|
||||
|
||||
public override void Destroy()
|
||||
{
|
||||
base.Destroy();
|
||||
UpdateSpline();
|
||||
}
|
||||
|
||||
public override void DrawInspector()
|
||||
{
|
||||
Refresh();
|
||||
base.DrawInspector();
|
||||
UpdateSpline();
|
||||
}
|
||||
|
||||
public override void DrawScene()
|
||||
{
|
||||
Refresh();
|
||||
base.DrawScene();
|
||||
UpdateSpline();
|
||||
}
|
||||
|
||||
public override void BeforeSceneGUI(SceneView current)
|
||||
{
|
||||
Refresh();
|
||||
base.BeforeSceneGUI(current);
|
||||
UpdateSpline();
|
||||
}
|
||||
|
||||
public void Refresh()
|
||||
{
|
||||
points = spline.GetPoints();
|
||||
isClosed = spline.isClosed;
|
||||
splineType = spline.type;
|
||||
sampleRate = spline.sampleRate;
|
||||
is2D = spline.is2D;
|
||||
color = spline.editorPathColor;
|
||||
}
|
||||
|
||||
public void UpdateSpline()
|
||||
{
|
||||
if (spline == null) return;
|
||||
if (!isClosed && spline.isClosed) spline.Break();
|
||||
else if(spline.isClosed && points.Length < 4)
|
||||
{
|
||||
spline.Break();
|
||||
isClosed = false;
|
||||
}
|
||||
spline.SetPoints(points);
|
||||
if (isClosed && !spline.isClosed) spline.Close();
|
||||
spline.type = splineType;
|
||||
spline.sampleRate = sampleRate;
|
||||
spline.is2D = is2D;
|
||||
spline.EditorUpdateConnectedNodes();
|
||||
}
|
||||
|
||||
void HandleUndo(string title)
|
||||
{
|
||||
Undo.RecordObject(spline, title);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 45538fa443017094faf75943a969938d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||