This commit is contained in:
corn
2026-06-07 22:59:32 +08:00
commit a62ff7379b
7171 changed files with 10015624 additions and 0 deletions

View 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;
}
}
}

View 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:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 04ead8b7662530e4d9a5e76ef9bae76c
folderAsset: yes
timeCreated: 1457898706
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View 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:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 80ddc5178e2fd384f8d906e39bc9ea64
folderAsset: yes
timeCreated: 1455295601
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View 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);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 72fdbe7a4c526e048b71f939e9c0c73c
timeCreated: 1455295805
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View 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);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: dbd2c446b47926347b9b126f60e16ad8
timeCreated: 1455295805
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View 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);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: db46236a6c24a02458ab53f69e482d9b
timeCreated: 1455295805
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View 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;
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 77c0bc8ac03c5ef49b19f61d6b0d5e63
timeCreated: 1455295805
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c64bf70078577534a9a2e5015c93459a
timeCreated: 1455297834
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 0f93155830fd1d14d889c002374573e8
timeCreated: 1455295805
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 81b24eca83abc154581a3830334d1e26
timeCreated: 1455295805
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View 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);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 2c5f355b780664e408027fdc7ce5a8d4
timeCreated: 1455295805
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View 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;
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 4bb5e3d650b12b84a977fe5b175067b2
timeCreated: 1455295805
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View 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();
}
}
}

View 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:

View 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;
}
}
}

View 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:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 30246f91b0df9f048a63873c72706a1a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 671f4a431b4054141ac528dc52c4772e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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();
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e59af6b243fa55640b014783bedaaae3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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();
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 17f0469145b8d194f8e96c0e083d5b72
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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();
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 50db3c9801774b24cbb81bdf47a3f852
timeCreated: 1476814299
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 870db4c17be74374e93a8dbc31114a05
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 45538fa443017094faf75943a969938d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More