Commit bed6d5a6 authored by Ever's avatar Ever

主玩法合并代码

parent fa463ac4
using NUnit.Framework; using DG.Tweening.Plugins.Core.PathCore;
using NUnit.Framework;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Net.NetworkInformation; using System.Net.NetworkInformation;
using System.Runtime.Serialization.Formatters.Binary;
using UnityEditor; using UnityEditor;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
public class ResData
{
public string name = "";
public Texture2D png = null;
public Sprite jpg = null;
public ResJsonData json = null;
}
public class GameEditor public class GameEditor
{ {
[MenuItem("Assets/解析资源")] [MenuItem("Assets/解析资源")]
public static void 解析资源() public static void 解析资源()
{ {
string dirPath = AssetDatabase.GetAssetPath(Selection.activeInstanceID); string dirPath = AssetDatabase.GetAssetPath(Selection.activeInstanceID);
ResData rd = new ResData();
GameObject go = new GameObject(); rd.name = Selection.activeObject.name;
go.name = Selection.activeObject.name;
RectTransform rect = go.AddComponent<RectTransform>();
rect.SetParent(GameObject.Find("Res").transform);
rect.localScale = Vector3.one;
rect.localPosition = Vector3.zero;
rect.sizeDelta = Vector2.zero;
MainData md = go.AddComponent<MainData>();
foreach (string path in Directory.GetFiles(dirPath, ".", SearchOption.AllDirectories)) foreach (string path in Directory.GetFiles(dirPath, ".", SearchOption.AllDirectories))
{ {
if (path.EndsWith(".png")) if (path.EndsWith(".png"))
{ {
md.Te_png = AssetDatabase.LoadAssetAtPath<Texture2D>(path); rd.png = AssetDatabase.LoadAssetAtPath<Texture2D>(path);
} }
else if (path.EndsWith(".jpg")) else if (path.EndsWith(".jpg"))
{ {
md.Sp_jpg = AssetDatabase.LoadAssetAtPath<Sprite>(path); rd.jpg = AssetDatabase.LoadAssetAtPath<Sprite>(path);
} }
else if (path.EndsWith(".json")) else if (path.EndsWith(".json"))
{ {
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.None); FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.None);
StreamReader sr = new StreamReader(fs, System.Text.Encoding.UTF8); StreamReader sr = new StreamReader(fs, System.Text.Encoding.UTF8);
string str = sr.ReadToEnd(); string str = sr.ReadToEnd();
md.json = JsonUtility.FromJson<ResJsonData>(str); rd.json = JsonUtility.FromJson<ResJsonData>(str);
sr.Close(); sr.Close();
fs.Close(); fs.Close();
} }
} }
md.Init(); string savePath = AssetDatabase.GetAssetPath(Selection.activeInstanceID) + "/" + rd.name + ".bin";
FileStream saveFs = File.Open(savePath, FileMode.Create);
BinaryFormatter saveBf = new BinaryFormatter();
saveBf.Serialize(saveFs, rd.json);
saveFs.Close();
Debug.Log("成功:" + savePath);
} }
} }
\ No newline at end of file
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using UnityEngine; using UnityEngine;
using UnityEngine.UI;
public class Drive : MonoBehaviour public class GameMgr : MonoBehaviour
{ {
private static Drive ins; private static GameMgr ins;
public static Drive Ins public static GameMgr Ins
{ {
get { return ins; } get { return ins; }
} }
...@@ -14,24 +16,28 @@ public class Drive : MonoBehaviour ...@@ -14,24 +16,28 @@ public class Drive : MonoBehaviour
{ {
ins = this; ins = this;
} }
public MainData md;
public void Init(Texture2D _png, Sprite _jpg, ResJsonData _json)
{
md.Init(_png, _jpg, _json);
}
public List<ExMask> useList = new List<ExMask>(); public List<MaskItem> useList = new List<MaskItem>();
public List<ExMask> poolList = new List<ExMask>(); public List<MaskItem> poolList = new List<MaskItem>();
public ExMask item; public MaskItem item;
public MaskItem Get()
public ExMask Get()
{ {
if (poolList.Count == 0) if (poolList.Count == 0)
{ {
ExMask temp = GameObject.Instantiate<ExMask>(item, item.transform.parent); MaskItem temp = GameObject.Instantiate<MaskItem>(item, item.transform.parent);
poolList.Add(temp); poolList.Add(temp);
} }
ExMask ret = poolList[0]; MaskItem ret = poolList[0];
poolList.RemoveAt(0); poolList.RemoveAt(0);
useList.Add(ret); useList.Add(ret);
return ret; return ret;
} }
public void Circle(ExMask temp) public void Circle(MaskItem temp)
{ {
if (useList.Contains(temp)) if (useList.Contains(temp))
{ {
...@@ -39,10 +45,10 @@ public class Drive : MonoBehaviour ...@@ -39,10 +45,10 @@ public class Drive : MonoBehaviour
poolList.Add(temp); poolList.Add(temp);
} }
} }
public void Create(MainData md, RoomDatas rd, Vector3 v) public void Create(MainData md, ExRoomDatas erd, Vector3 v)
{ {
ExMask temp = Get(); MaskItem temp = Get();
temp.DoFun(md, rd, v); temp.DoFun(md, erd, v);
} }
} }
fileFormatVersion: 2 fileFormatVersion: 2
guid: 1004abe3021ad5547b84ef90fb2afc7b guid: f81887d3b2353d2409eed5d664c55605
MonoImporter: MonoImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 2 serializedVersion: 2
......
This diff is collapsed.
fileFormatVersion: 2
guid: 5037be372232211408f77430af28ec20
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 1
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: e0441997bd4bc1e40a03a0589955a575
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 1
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
...@@ -16,9 +16,6 @@ public class ExImage : Image ...@@ -16,9 +16,6 @@ public class ExImage : Image
m_ShouldRecalculateStencil = false; m_ShouldRecalculateStencil = false;
} }
// if we have a enabled Mask component then it will
// generate the mask material. This is an optimisation
// it adds some coupling between components though :(
Mask maskComponent = GetComponent<Mask>(); Mask maskComponent = GetComponent<Mask>();
if (m_StencilValue > 0 && (maskComponent == null || !maskComponent.IsActive())) if (m_StencilValue > 0 && (maskComponent == null || !maskComponent.IsActive()))
{ {
...@@ -29,22 +26,4 @@ public class ExImage : Image ...@@ -29,22 +26,4 @@ public class ExImage : Image
} }
return toUse; return toUse;
} }
}
} \ No newline at end of file
//"itemDatas":[],
//"colorDiff":10,
//"lineFactorDiff":90,
//"size":2048,
//"width":2048,
//"height":2048,
//"useOriginLineColor":1,
//"useOriginPicColor":1,
//"useCustomLineColor":0,
//"customLineColor_R":0,
//"customLineColor_G":0,
//"customLineColor_B":0,
//"hasDividedArea":0,
//"useLineCutout":1,
//"lineCutoutThreshold":0.5,
//"scaleNumWhenOver100":0.75,
//"extraMetaData":{ "kadian_size":6,"tuhei_size":2}}
\ No newline at end of file
This diff is collapsed.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Net.NetworkInformation;
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
[Serializable]
public class ImageData
{
public List<int> OverIdList = new List<int>();
public List<ImageSubData> AlllList = new List<ImageSubData>();
public void AddData(ImageSubData isd)
{
if (isd.list.Count > 1)
{
AlllList.Add(isd);
}
}
}
[Serializable]
public class ImageSubData
{
public int id = -1;
public Vector4 size = -Vector4.one;
public List<Vector2> list = new List<Vector2>();
public void AddData(Vector2 v)
{
if (size.x == -1 || size.x > v.x)
{
size.x = v.x;
}
if (size.y == -1 || size.y > v.y)
{
size.y = v.y;
}
if (size.z == -1 || size.z < v.x)
{
size.z = v.x;
}
if (size.w == -1 || size.w < v.y)
{
size.w = v.y;
}
list.Add(v);
}
public bool Contains(Vector2 v)
{
return list.Contains(v);
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: ffb7a96da40a615449655b4c7c57681f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using UnityEngine; using UnityEngine;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using UnityEngine.UI; using UnityEngine.UI;
public class MainData : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDragHandler public class MainData : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDragHandler
{ {
public static int GunSize = 50; public List<ExRoomDatas> erdList = new List<ExRoomDatas>();
public ImageData data = new ImageData(); public static int gunSize = 50;
public Texture2D Te_png; public Texture2D png = null;
public Sprite Sp_jpg; public Sprite jpg = null;
public ResJsonData json; public ResJsonData json;
public Image png; public Image imgpng;
public Image jpg; public Image imgjpg;
public RectTransform Rect; public RectTransform rect;
// Use this for initialization public Stack<Vector2> stackVector2 = new Stack<Vector2>();
void Start()
{
Rect = GetComponent<RectTransform>();
}
// Update is called once per frame
void Update() void Update()
{ {
Scale(); Scale();
Click(); Click();
} }
public void Init() public void Init(Texture2D _png, Sprite _jpg, ResJsonData _json)
{ {
RectTransform rect = GetComponent<RectTransform>(); png = _png;
jpg = _jpg;
GameObject go_jpg = new GameObject(); json = _json;
go_jpg.name = "jpg"; erdList = new List<ExRoomDatas>();
RectTransform rect_jpg = go_jpg.AddComponent<RectTransform>();
rect_jpg.SetParent(rect);
rect_jpg.localScale = Vector3.one;
rect_jpg.localPosition = Vector3.zero;
jpg = go_jpg.AddComponent<Image>();
jpg.sprite = Sp_jpg;
GameObject go_png = new GameObject();
go_png.name = "png";
RectTransform rect_png = go_png.AddComponent<RectTransform>();
rect_png.SetParent(rect);
rect_png.localScale = Vector3.one;
rect_png.localPosition = Vector3.zero;
rect_png.sizeDelta = Vector2.zero;
png = go_png.AddComponent<Image>();
png.sprite = Sprite.Create(Te_png, new Rect(0, 0, Te_png.width, Te_png.height), Vector2.zero);
png.SetNativeSize();
rect_jpg.sizeDelta = rect_png.sizeDelta;
Split(); Split();
} }
#region 图片分区 #region 解析图片
public void Split() public void Split()
{ {
for (int i = 0; i < json.roomDatas.Count; i++) for (int i = 0; i < json.roomDatas.Count; i++)
{ {
RoomDatas temp = json.roomDatas[i]; RoomDatas temp = json.roomDatas[i];
ExRoomDatas erd = new ExRoomDatas();
erdList.Add(erd);
Vector2 v = new Vector2(temp.px, temp.py); Vector2 v = new Vector2(temp.px, temp.py);
if (Te_png.GetPixel((int)v.x, (int)v.y).a <= 0f) if (png.GetPixel((int)v.x, (int)v.y).a <= 0.35f)
{ {
FunDo(v, temp); FunDo(v, erd);
} }
} }
Te_png.Apply(); png.Apply();
} }
public void FunDo(Vector2 _v, ExRoomDatas erd)
private Stack<Vector2> stackVector2 = new Stack<Vector2>();
public void FunDo(Vector2 _v, RoomDatas temp)
{ {
stackVector2.Push(_v); stackVector2.Push(_v);
Vector2[] d = new Vector2[4] { new Vector2(0, -1), new Vector2(0, 1), new Vector2(-1, 0), new Vector2(1, 0) }; Vector2[] d = new Vector2[4] { new Vector2(0, -1), new Vector2(0, 1), new Vector2(-1, 0), new Vector2(1, 0) };
...@@ -88,12 +65,12 @@ public class MainData : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDrag ...@@ -88,12 +65,12 @@ public class MainData : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDrag
while (stackVector2.Count > 0) while (stackVector2.Count > 0)
{ {
v_1 = stackVector2.Pop(); v_1 = stackVector2.Pop();
temp.AddData(v_1); erd.AddData(v_1);
Te_png.SetPixel((int)v_1.x, (int)v_1.y, Color.white); png.SetPixel((int)v_1.x, (int)v_1.y, Color.white);
for (int i = 0; i < d.Length; i++) for (int i = 0; i < d.Length; i++)
{ {
v_2 = v_1 + d[i]; v_2 = v_1 + d[i];
if (v_2.x >= 0 && v_2.x < Te_png.width && v_2.y >= 0 && v_2.y < Te_png.height && Te_png.GetPixel((int)v_2.x, (int)v_2.y).a <= 0f) if (v_2.x >= 0 && v_2.x < png.width && v_2.y >= 0 && v_2.y < png.height && png.GetPixel((int)v_2.x, (int)v_2.y).a <= 0f)
{ {
stackVector2.Push(v_2); stackVector2.Push(v_2);
} }
...@@ -109,12 +86,12 @@ public class MainData : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDrag ...@@ -109,12 +86,12 @@ public class MainData : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDrag
public void OnBeginDrag(PointerEventData eventData) public void OnBeginDrag(PointerEventData eventData)
{ {
isDrag = true; isDrag = true;
RectTransformUtility.ScreenPointToLocalPointInRectangle(Rect, Input.mousePosition, Camera.main, out StartPos); RectTransformUtility.ScreenPointToLocalPointInRectangle(rect, Input.mousePosition, Camera.main, out StartPos);
} }
public void OnDrag(PointerEventData eventData) public void OnDrag(PointerEventData eventData)
{ {
if (!isDrag) { return; } if (!isDrag) { return; }
RectTransformUtility.ScreenPointToLocalPointInRectangle(Rect, Input.mousePosition, Camera.main, out EndPos); RectTransformUtility.ScreenPointToLocalPointInRectangle(rect, Input.mousePosition, Camera.main, out EndPos);
Vector3 v = EndPos - StartPos; Vector3 v = EndPos - StartPos;
transform.localPosition += v; transform.localPosition += v;
...@@ -176,7 +153,7 @@ public class MainData : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDrag ...@@ -176,7 +153,7 @@ public class MainData : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDrag
float f = Time.unscaledTime - time; float f = Time.unscaledTime - time;
float d = Vector2.Distance(pos, Input.mousePosition); float d = Vector2.Distance(pos, Input.mousePosition);
Vector2 v; Vector2 v;
RectTransformUtility.ScreenPointToLocalPointInRectangle(Rect, Input.mousePosition, Camera.main, out v); RectTransformUtility.ScreenPointToLocalPointInRectangle(rect, Input.mousePosition, Camera.main, out v);
if (f < 0.5f && d < 10) if (f < 0.5f && d < 10)
{ {
Debug.Log("点击:" + v); Debug.Log("点击:" + v);
...@@ -194,11 +171,11 @@ public class MainData : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDrag ...@@ -194,11 +171,11 @@ public class MainData : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDrag
public void UseGun(Vector2 v) public void UseGun(Vector2 v)
{ {
List<Vector2> list = new List<Vector2>(); List<Vector2> list = new List<Vector2>();
for (int i = 0; i < GunSize; i++) for (int i = 0; i < gunSize; i++)
{ {
for (int j = 0; j < GunSize; j++) for (int j = 0; j < gunSize; j++)
{ {
Vector2 temp = new Vector2(v.x + i - GunSize / 2, v.y + j - GunSize / 2); Vector2 temp = new Vector2(v.x + i - gunSize / 2, v.y + j - gunSize / 2);
list.Add(temp); list.Add(temp);
} }
} }
...@@ -221,47 +198,46 @@ public class MainData : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDrag ...@@ -221,47 +198,46 @@ public class MainData : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDrag
public bool OnClickPos(Vector2 v) public bool OnClickPos(Vector2 v)
{ {
v.x = (int)v.x + Te_png.width / 2; v.x = (int)v.x + png.width / 2;
v.y = (int)v.y + Te_png.height / 2; v.y = (int)v.y + png.height / 2;
if (v.x < 0 || v.x >= Te_png.width) if (v.x < 0 || v.x >= png.width)
{ {
//Debug.Log("x越界:" + v.x); //Debug.Log("x越界:" + v.x);
return false; return false;
} }
if (v.y < 0 || v.y >= Te_png.height) if (v.y < 0 || v.y >= png.height)
{ {
//Debug.Log("y越界:" + v.y); //Debug.Log("y越界:" + v.y);
return false; return false;
} }
if (Te_png.GetPixel((int)v.x, (int)v.y) != Color.white) if (png.GetPixel((int)v.x, (int)v.y) != Color.white)
{ {
//Debug.Log("涂过了"); //Debug.Log("涂过了");
return false; return false;
} }
RoomDatas rd = null; ExRoomDatas erd = null;
for (int i = 0; i < data.AlllList.Count; i++) for (int i = 0; i < erdList.Count; i++)
{ {
if (json.roomDatas[i].Contains(v)) if (erdList[i].Contains(v))
{ {
//Debug.Log("在第" + i + "组数据中"); //Debug.Log("在第" + i + "组数据中");
rd = json.roomDatas[i]; erd = erdList[i];
} }
} }
if (rd == null) if (erd == null)
{ {
//Debug.Log("组数据为空"); //Debug.Log("组数据为空");
return false; return false;
} }
GameMgr.Ins.Create(this, erd, v);
Drive.Ins.Create(this, rd, v); for (int i = 0; i < erd.list.Count; i++)
for (int i = 0; i < rd.list.Count; i++)
{ {
Te_png.SetPixel((int)rd.list[i].x, (int)rd.list[i].y, Color.clear); png.SetPixel((int)erd.list[i].x, (int)erd.list[i].y, Color.clear);
} }
Te_png.Apply(); png.Apply();
return true; return true;
} }
} }
\ No newline at end of file
...@@ -4,7 +4,7 @@ using System.Collections.Generic; ...@@ -4,7 +4,7 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
public class ExMask : MonoBehaviour public class MaskItem : MonoBehaviour
{ {
public float IsUse = -1; public float IsUse = -1;
public Image SP; public Image SP;
...@@ -29,23 +29,23 @@ public class ExMask : MonoBehaviour ...@@ -29,23 +29,23 @@ public class ExMask : MonoBehaviour
{ {
gameObject.SetActive(false); gameObject.SetActive(false);
IsUse = -1; IsUse = -1;
Drive.Ins.Circle(this); GameMgr.Ins.Circle(this);
} }
} }
internal void DoFun(MainData md, RoomDatas rd, Vector3 v) internal void DoFun(MainData md, ExRoomDatas erd, Vector3 v)
{ {
//创建图片 //创建图片
Texture2D te = new Texture2D((int)(rd.size.z - rd.size.x + 1), (int)(rd.size.w - rd.size.y + 1), TextureFormat.RGBA32, false); Texture2D te = new Texture2D((int)(erd.size.z - erd.size.x + 1), (int)(erd.size.w - erd.size.y + 1), TextureFormat.RGBA32, false);
Color[] colors = te.GetPixels(); Color[] colors = te.GetPixels();
for (int i = 0; i < colors.Length; i++) for (int i = 0; i < colors.Length; i++)
{ {
colors[i].a = 0f; colors[i].a = 0f;
} }
te.SetPixels(colors); te.SetPixels(colors);
for (int i = 0; i < rd.list.Count; i++) for (int i = 0; i < erd.list.Count; i++)
{ {
te.SetPixel((int)(rd.list[i].x - rd.size.x), (int)(rd.list[i].y - rd.size.y), Color.white); te.SetPixel((int)(erd.list[i].x - erd.size.x), (int)(erd.list[i].y - erd.size.y), Color.white);
} }
te.Apply(); te.Apply();
Sprite sp = Sprite.Create(te, new Rect(0, 0, te.width, te.height), Vector2.zero); Sprite sp = Sprite.Create(te, new Rect(0, 0, te.width, te.height), Vector2.zero);
...@@ -54,19 +54,19 @@ public class ExMask : MonoBehaviour ...@@ -54,19 +54,19 @@ public class ExMask : MonoBehaviour
//坐标计算 //坐标计算
Transform p = Rect.parent; Transform p = Rect.parent;
Rect.SetParent(md.png.transform); Rect.SetParent(md.imgpng.transform);
Rect.localPosition = v - new Vector3(md.Te_png.width / 2, md.Te_png.height / 2); Rect.localPosition = v - new Vector3(md.png.width / 2, md.png.height / 2);
Rect.SetParent(p); Rect.SetParent(p);
SPRect.SetParent(md.png.transform); SPRect.SetParent(md.imgpng.transform);
SPRect.localPosition = new Vector3(rd.size.x + (rd.size.z + 1 - rd.size.x) / 2 - (md.Te_png.width + 1) / 2, rd.size.y + (rd.size.w + 1 - rd.size.y) / 2 - (md.Te_png.height + 1) / 2, 0); SPRect.localPosition = new Vector3(erd.size.x + (erd.size.z + 1 - erd.size.x) / 2 - (md.png.width + 1) / 2, erd.size.y + (erd.size.w + 1 - erd.size.y) / 2 - (md.png.height + 1) / 2, 0);
SPRect.SetParent(Rect); SPRect.SetParent(Rect);
//初始处理 //初始处理
gameObject.SetActive(true); gameObject.SetActive(true);
Rect.sizeDelta = Vector2.zero; Rect.sizeDelta = Vector2.zero;
float a = Math.Max(rd.size.z - v.x, v.x - rd.size.x); float a = Math.Max(erd.size.z - v.x, v.x - erd.size.x);
float b = Math.Max(rd.size.w - v.y, v.y - rd.size.y); float b = Math.Max(erd.size.w - v.y, v.y - erd.size.y);
IsUse = Math.Max(a, b) * 2; IsUse = Math.Max(a, b) * 2;
} }
} }
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
...@@ -15,24 +16,24 @@ public class ResJsonData ...@@ -15,24 +16,24 @@ public class ResJsonData
public List<RoomGroupsData> roomGroupsData = new List<RoomGroupsData>(); public List<RoomGroupsData> roomGroupsData = new List<RoomGroupsData>();
public int colorDiff; public int colorDiff;
public int lineFactorDiff; public int lineFactorDiff;
public int size; public int size;
public int width; public int width;
public int height; public int height;
public int useOriginLineColor; public int useOriginLineColor;
public int useOriginPicColor; public int useOriginPicColor;
public int useCustomLineColor; public int useCustomLineColor;
public int customLineColor_R; public int customLineColor_R;
public int customLineColor_G; public int customLineColor_G;
public int customLineColor_B; public int customLineColor_B;
public int hasDividedArea; public int hasDividedArea;
public int useLineCutout; public int useLineCutout;
public int lineCutoutThreshold; public int lineCutoutThreshold;
public int scaleNumWhenOver100; public int scaleNumWhenOver100;
public ExtraMetaData extraMetaData; public ExtraMetaData extraMetaData;
} }
[Serializable]
[Serializable]
public class ExtraMetaData //后面再看为啥json序列化失败 public class ExtraMetaData //后面再看为啥json序列化失败
{ {
public int kadian_size; public int kadian_size;
...@@ -52,9 +53,23 @@ public class RoomDatas ...@@ -52,9 +53,23 @@ public class RoomDatas
public int G; public int G;
public int B; public int B;
public int useAreaData; public int useAreaData;
}
[Serializable]
public class RoomGroupsData
{
public int id;
public List<int> roomIds = new List<int>();
public int R;
public int G;
public int B;
}
[Serializable]
public class ExRoomDatas
{
public Vector4 size = -Vector4.one; public Vector4 size = -Vector4.one;
public List<Vector2> list = new List<Vector2>(); public List<Vector2> list = new List<Vector2>();
public void AddData(Vector2 v) public void AddData(Vector2 v)
{ {
if (size.x == -1 || size.x > v.x) if (size.x == -1 || size.x > v.x)
...@@ -77,15 +92,13 @@ public class RoomDatas ...@@ -77,15 +92,13 @@ public class RoomDatas
} }
public bool Contains(Vector2 v) public bool Contains(Vector2 v)
{ {
return list.Contains(v); for (int i = 0; i < list.Count; i++)
{
if (list[i].x == v.x && list[i].y == v.y)
{
return true;
}
}
return false;
} }
}
[Serializable]
public class RoomGroupsData
{
public int id;
public List<int> roomIds = new List<int>();
public int R;
public int G;
public int B;
} }
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
fileFormatVersion: 2 fileFormatVersion: 2
guid: 24b7bada78a6d834bbfddac9752e5971 guid: 677dcd30486a71e449669c8c94a215f8
TextScriptImporter: PrefabImporter:
externalObjects: {} externalObjects: {}
userData: userData:
assetBundleName: assetBundleName:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment