瀏覽代碼

提交人口转移改版

wartheking 9 月之前
父節點
當前提交
6169b2db73

+ 178 - 0
Assets/Art/Prefab/LinePath.prefab

@@ -0,0 +1,178 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &4511378785228946599
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6109467418763709311}
+  - component: {fileID: 2151371319903050505}
+  - component: {fileID: 4295694243296250648}
+  - component: {fileID: 188430040509853384}
+  - component: {fileID: 8444227096103308695}
+  m_Layer: 0
+  m_Name: LinePath
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &6109467418763709311
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4511378785228946599}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 946.3751, y: 705.52325, z: -132.77345}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!120 &2151371319903050505
+LineRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4511378785228946599}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 0
+  m_LightProbeUsage: 0
+  m_ReflectionProbeUsage: 0
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 7d49cfecc396ca144897bdace6c6ac11, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_Positions:
+  - {x: 0, y: 0, z: 0}
+  - {x: 0, y: 0, z: 1}
+  m_Parameters:
+    serializedVersion: 3
+    widthMultiplier: 0.29847068
+    widthCurve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 1
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    colorGradient:
+      serializedVersion: 2
+      key0: {r: 1, g: 1, b: 1, a: 1}
+      key1: {r: 1, g: 1, b: 1, a: 1}
+      key2: {r: 0, g: 0, b: 0, a: 0}
+      key3: {r: 0, g: 0, b: 0, a: 0}
+      key4: {r: 0, g: 0, b: 0, a: 0}
+      key5: {r: 0, g: 0, b: 0, a: 0}
+      key6: {r: 0, g: 0, b: 0, a: 0}
+      key7: {r: 0, g: 0, b: 0, a: 0}
+      ctime0: 0
+      ctime1: 65535
+      ctime2: 0
+      ctime3: 0
+      ctime4: 0
+      ctime5: 0
+      ctime6: 0
+      ctime7: 0
+      atime0: 0
+      atime1: 65535
+      atime2: 0
+      atime3: 0
+      atime4: 0
+      atime5: 0
+      atime6: 0
+      atime7: 0
+      m_Mode: 0
+      m_NumColorKeys: 2
+      m_NumAlphaKeys: 2
+    numCornerVertices: 0
+    numCapVertices: 0
+    alignment: 0
+    textureMode: 0
+    shadowBias: 0.5
+    generateLightingData: 0
+  m_UseWorldSpace: 1
+  m_Loop: 0
+--- !u!114 &4295694243296250648
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4511378785228946599}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 9ea38b25cea70234e82b6982a5a3817e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  lineDir: 0
+  startPos: 
+  endPos: 
+  linePathContent: 
+  manNum: 0
+  homeNum: 0
+  completeNum: 0
+  dateTime: 
+  line: {fileID: 0}
+--- !u!33 &188430040509853384
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4511378785228946599}
+  m_Mesh: {fileID: 0}
+--- !u!65 &8444227096103308695
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4511378785228946599}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 0.29847068, y: 0.29847068, z: 1.2984707}
+  m_Center: {x: -946.3751, y: -705.52325, z: 133.27345}

+ 7 - 0
Assets/Art/Prefab/LinePath.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 23505d13caaae9c4d9933cc5fa6860e5
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

二進制
Assets/Art/UI/YZT/B05/img_mapbg02@2x.png


+ 0 - 147
Assets/Art/UI/YZT/B05/img_mapbg02@2x.png.meta

@@ -1,147 +0,0 @@
-fileFormatVersion: 2
-guid: d8fbe067ded7ce740a58962685bfa978
-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
-  isReadable: 0
-  streamingMipmaps: 0
-  streamingMipmapsPriority: 0
-  vTOnly: 0
-  ignoreMasterTextureLimit: 0
-  grayScaleToAlpha: 0
-  generateCubemap: 6
-  cubemapConvolution: 0
-  seamlessCubemap: 0
-  textureFormat: 1
-  maxTextureSize: 2048
-  textureSettings:
-    serializedVersion: 2
-    filterMode: 1
-    aniso: 1
-    mipBias: 0
-    wrapU: 1
-    wrapV: 1
-    wrapW: 0
-  nPOTScale: 0
-  lightmap: 0
-  compressionQuality: 50
-  spriteMode: 1
-  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: 8
-  textureShape: 1
-  singleChannelComponent: 0
-  flipbookRows: 1
-  flipbookColumns: 1
-  maxTextureSizeSet: 0
-  compressionQualitySet: 0
-  textureFormatSet: 0
-  ignorePngGamma: 0
-  applyGammaDecoding: 0
-  cookieLightType: 0
-  platformSettings:
-  - serializedVersion: 3
-    buildTarget: DefaultTexturePlatform
-    maxTextureSize: 2048
-    resizeAlgorithm: 0
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 70
-    crunchedCompression: 1
-    allowsAlphaSplitting: 0
-    overridden: 0
-    androidETC2FallbackOverride: 0
-    forceMaximumCompressionQuality_BC6H_BC7: 0
-  - serializedVersion: 3
-    buildTarget: WebGL
-    maxTextureSize: 2048
-    resizeAlgorithm: 0
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 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
-    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
-    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
-    androidETC2FallbackOverride: 0
-    forceMaximumCompressionQuality_BC6H_BC7: 0
-  spriteSheet:
-    serializedVersion: 2
-    sprites: []
-    outline: []
-    physicsShape: []
-    bones: []
-    spriteID: 5e97eb03825dee720800000000000000
-    internalID: 0
-    vertices: []
-    indices: 
-    edges: []
-    weights: []
-    secondaryTextures: []
-    nameFileIdTable: {}
-  spritePackingTag: 
-  pSDRemoveMatte: 0
-  pSDShowRemoveMatteOption: 0
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 32 - 0
Assets/Prefabs/MiniMap.prefab

@@ -79,6 +79,37 @@ Transform:
   m_Father: {fileID: 1644283074}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1216517145
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1216517146}
+  m_Layer: 0
+  m_Name: MovePath
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1216517146
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1216517145}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0.5, y: -6.7, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 7069582396450853087}
+  m_RootOrder: 10
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1 &1644283073
 GameObject:
   m_ObjectHideFlags: 0
@@ -403,6 +434,7 @@ Transform:
   - {fileID: 4541662238408593204}
   - {fileID: 7963525554212561013}
   - {fileID: 1829979977482383576}
+  - {fileID: 1216517146}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

文件差異過大導致無法顯示
+ 11 - 880
Assets/Prefabs/UI/XHYZT/RKZY.prefab


文件差異過大導致無法顯示
+ 13 - 100
Assets/Scene 1.unity


+ 65 - 9
Assets/Scripts/UI/UIView/RKZY/LinePath.cs

@@ -2,8 +2,10 @@ using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.EventSystems;
+using XCharts.Runtime;
 
-public enum LineDir { 
+public enum LineDir
+{
     Out,
     In
 };
@@ -15,7 +17,7 @@ public enum ZYTime
 };
 
 
-public class LinePath : MonoBehaviour,IPointerEnterHandler,IPointerExitHandler
+public class LinePath : MonoBehaviour
 {
     public LineDir lineDir;
     public string startPos;
@@ -27,20 +29,74 @@ public class LinePath : MonoBehaviour,IPointerEnterHandler,IPointerExitHandler
     public int completeNum;
     public string dateTime;
 
-    public void OnPointerEnter(PointerEventData eventData)
+    public LineRenderer line;
+    private List<Vector3> points = new List<Vector3>();
+    // Use this for initialization
+    public void Start()
     {
-        if (RKZYLayer.lineInfoStatic) {
-            RKZYLayer.lineInfoStatic.SetData(this);
-            RKZYLayer.lineInfoStatic.GetComponent<RectTransform>().anchoredPosition = this.GetComponent<RectTransform>().anchoredPosition;
-            RKZYLayer.lineInfoStatic.linePaths.Add(this);
+        line = this.GetComponent<LineRenderer>();
+
+        points.Clear();
+        // line = lines;
+        GameObject caret = null;
+        caret = new GameObject("Lines");
+        Vector3 left, right; // A position to the left of the current line
+                             // For all but the last point
+        for (var i = 0; i < line.positionCount - 1; i++)
+        {
+            caret.transform.position = line.GetPosition(i);
+            caret.transform.LookAt(line.GetPosition(i + 1));
+            right = caret.transform.position + transform.right * line.startWidth / 2;
+            left = caret.transform.position - transform.right * line.startWidth / 2;
+            points.Add(left);
+            points.Add(right);
+        }
+        // Last point looks backwards and reverses
+        caret.transform.position = line.GetPosition(line.positionCount - 1);
+        caret.transform.LookAt(line.GetPosition(line.positionCount - 2));
+        right = caret.transform.position + transform.right * line.startWidth / 2;
+        left = caret.transform.position - transform.right * line.startWidth / 2;
+        points.Add(left);
+        points.Add(right);
+        Destroy(caret);
+        DrawMesh();
+    }
+
+
+    private void DrawMesh()
+    {
+        Vector3[] verticies = new Vector3[points.Count];
+        for (int i = 0; i < verticies.Length; i++)
+        {
+            verticies[i] = points[i];
+        }
+        int[] triangles = new int[((points.Count / 2) - 1) * 6];
+        //Works on linear patterns tn = bn+c
+        int position = 6;
+        for (int i = 0; i < (triangles.Length / 6); i++)
+        {
+            triangles[i * position] = 2 * i;
+            triangles[i * position + 3] = 2 * i;
+            triangles[i * position + 1] = 2 * i + 3;
+            triangles[i * position + 4] = (2 * i + 3) - 1;
+            triangles[i * position + 2] = 2 * i + 1;
+            triangles[i * position + 5] = (2 * i + 1) + 2;
         }
+        Mesh mesh = GetComponent<MeshFilter>().mesh;
+        mesh.Clear();
+        mesh.vertices = verticies;
+        mesh.triangles = triangles;
+        mesh.RecalculateNormals();
     }
 
-    public void OnPointerExit(PointerEventData eventData)
+
+    public void OnShow()
     {
         if (RKZYLayer.lineInfoStatic)
         {
-            RKZYLayer.lineInfoStatic.linePaths.Remove(this);
+            RKZYLayer.lineInfoStatic.SetData(this);
+            RKZYLayer.lineInfoStatic.GetComponent<RectTransform>().anchoredPosition = this.GetComponent<RectTransform>().anchoredPosition;
+            RKZYLayer.lineInfoStatic.linePaths.Add(this);
         }
     }
 }

+ 104 - 47
Assets/Scripts/UI/UIView/RKZY/RKZYLayer.cs

@@ -1,4 +1,5 @@
-using Newtonsoft.Json;
+using Best.HTTP.Shared.Compression.Zlib;
+using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using System;
 using System.Collections;
@@ -38,7 +39,11 @@ public class ServerMovePlan {
     public bool isOut;
     public string desc;
     public string from;
+    public float fromLong;
+    public float fromLttd;
     public string to;
+    public float toLong;
+    public float toLttd;
     public int manNum;
     public int homeNum;
     public int completeNum;
@@ -74,9 +79,9 @@ public class RKZYLayer : YZTRootLayer
 
     public Button[] allInOut;
 
-    public RectTransform before;
+    public RectTransform beforeC;
 
-    public RectTransform after;
+    public RectTransform afterC;
 
     public List<LinePath> linePaths = new List<LinePath>();
 
@@ -102,18 +107,24 @@ public class RKZYLayer : YZTRootLayer
     public ZYYAData[] zYYADatas;
     public int zYYAIndex = 0;
     public Text[] zYYAText;
+
+    public Material afterMat;
+    public LinePath linePathPrefab;
     // Start is called before the first frame update
     async void Start()
     {
         lineInfoStatic = lineInfo;
+        await InitMovePlan();
         //TODO 这一块的path应该从movePlan里面生成而不是默认
         InitAllPath();
-        await InitMovePlan();
         InitButton();
         InitAtten();
         await InitBaseData();
     }
-
+    private void OnEnable()
+    {
+        CameraManager.SwitchCamera(1);
+    }
     void InitAtten() {
         RectTransform title = Instantiate(title2);
         title.SetParent(attenContent);
@@ -177,7 +188,7 @@ public class RKZYLayer : YZTRootLayer
         zYYADatas = new ZYYAData[6] { new ZYYAData(), new ZYYAData() , new ZYYAData() , new ZYYAData() , new ZYYAData() , new ZYYAData() };
         try
         {
-            if (requestData.result != UnityWebRequest.Result.Success)
+            if (true)
             {
                 Debug.LogWarning("RKZYLayer联网不成功,读本地缓存数据,原因:返request不成功");
                 successInternet = false;
@@ -218,50 +229,82 @@ public class RKZYLayer : YZTRootLayer
             www.Dispose();
         }
 
-        LinePath[] beforeLinePaths = before.GetComponentsInChildren<LinePath>();
-        LinePath[] afterLinePaths = after.GetComponentsInChildren<LinePath>();
+
         int beforeIndex = 0;
         int afterIndex = 0;
+        List<LinePath> beforeLinePaths = new List<LinePath>();
+        List<LinePath> afterLinePaths = new List<LinePath>();
+        GameObject shaPan = GameObject.FindGameObjectWithTag("ShaPan");
+        Transform runtimPointParent = shaPan.transform.GetChild(10);
         for (int i = 0; i < allServerMovePlans.Count; i++) {
             bool after = allServerMovePlans[i].isAfter;
             bool isOut = allServerMovePlans[i].isOut;
             if (!after)
             {
-                beforeLinePaths[beforeIndex].startPos = allServerMovePlans[i].from;
-                beforeLinePaths[beforeIndex].endPos = allServerMovePlans[i].to;
-                beforeLinePaths[beforeIndex].lineDir = isOut ? LineDir.Out : LineDir.In;
-                beforeLinePaths[beforeIndex].linePathContent = allServerMovePlans[i].desc;
-                beforeLinePaths[beforeIndex].manNum = allServerMovePlans[i].manNum;
-                beforeLinePaths[beforeIndex].homeNum = allServerMovePlans[i].homeNum;
-                beforeLinePaths[beforeIndex].completeNum = allServerMovePlans[i].completeNum;
-                beforeLinePaths[beforeIndex].dateTime = allServerMovePlans[i].dateTime;
-                
-                if (beforeLinePaths[beforeIndex].lineDir == LineDir.Out)
+                LinePath linePath = Instantiate(linePathPrefab);
+                linePath.transform.SetParent(beforeC);
+                linePath.transform.localScale = Vector3.one;
+                linePath.startPos = allServerMovePlans[i].from;
+                Vector3 localPos = CoordinateConverter.GeoToUGUISmall(allServerMovePlans[i].fromLong, allServerMovePlans[i].fromLttd);
+                Vector3 worldPos = runtimPointParent.TransformPoint(localPos);
+                worldPos.z = -583;
+                linePath.GetComponent<LineRenderer>().SetPosition(1, worldPos);
+                linePath.endPos = allServerMovePlans[i].to;
+                Vector3 localPos1 = CoordinateConverter.GeoToUGUISmall(allServerMovePlans[i].toLong, allServerMovePlans[i].toLttd);
+                Vector3 worldPos1 = runtimPointParent.TransformPoint(localPos1);
+                worldPos1.z = -583;
+                float distance = Vector3.Distance(worldPos, worldPos1);
+                linePath.GetComponent<LineRenderer>().material.SetTextureScale("_MainTex", new Vector2(distance * 120 / 25, 1));
+                linePath.GetComponent<LineRenderer>().SetPosition(0, worldPos1);
+                linePath.lineDir = isOut ? LineDir.Out : LineDir.In;
+                linePath.linePathContent = allServerMovePlans[i].desc;
+                linePath.manNum = allServerMovePlans[i].manNum;
+                linePath.homeNum = allServerMovePlans[i].homeNum;
+                linePath.completeNum = allServerMovePlans[i].completeNum;
+                linePath.dateTime = allServerMovePlans[i].dateTime;
+
+                if (linePath.lineDir == LineDir.Out)
                 {
                     zYYADatas[1].totalmanNum += allServerMovePlans[i].manNum;
                     zYYADatas[1].totalVillageCount += allServerMovePlans[i].villageCount;
                     zYYADatas[1].totalMaterialPrize += allServerMovePlans[i].materialPrize;
                     zYYADatas[1].totalRoadCount += 1;
                 }
-                else {
+                else
+                {
                     zYYADatas[2].totalmanNum += allServerMovePlans[i].manNum;
                     zYYADatas[2].totalVillageCount += allServerMovePlans[i].villageCount;
                     zYYADatas[2].totalMaterialPrize += allServerMovePlans[i].materialPrize;
                     zYYADatas[2].totalRoadCount += 1;
                 }
-                beforeIndex++;
+                beforeLinePaths.Add(linePath);
             }
-            else {
-                afterLinePaths[afterIndex].startPos = allServerMovePlans[i].from;
-                afterLinePaths[afterIndex].endPos = allServerMovePlans[i].to;
-                afterLinePaths[afterIndex].lineDir = isOut ? LineDir.Out : LineDir.In;
-                afterLinePaths[afterIndex].linePathContent = allServerMovePlans[i].desc;
-                afterLinePaths[afterIndex].manNum = allServerMovePlans[i].manNum;
-                afterLinePaths[afterIndex].homeNum = allServerMovePlans[i].homeNum;
-                afterLinePaths[afterIndex].completeNum = allServerMovePlans[i].completeNum;
-                afterLinePaths[afterIndex].dateTime = allServerMovePlans[i].dateTime;
-                
-                if (afterLinePaths[afterIndex].lineDir == LineDir.Out)
+            else
+            {
+                LinePath linePath = Instantiate(linePathPrefab);
+                linePath.transform.SetParent(afterC);
+                linePath.transform.localScale = Vector3.one;
+                linePath.startPos = allServerMovePlans[i].from;
+                Vector3 localPos = CoordinateConverter.GeoToUGUISmall(allServerMovePlans[i].fromLong, allServerMovePlans[i].fromLttd);
+                Vector3 worldPos = runtimPointParent.TransformPoint(localPos);
+                worldPos.z = -583;
+                linePath.GetComponent<LineRenderer>().SetPosition(1, worldPos);
+                linePath.endPos = allServerMovePlans[i].to;
+                Vector3 localPos1 = CoordinateConverter.GeoToUGUISmall(allServerMovePlans[i].toLong, allServerMovePlans[i].toLttd);
+                Vector3 worldPos1 = runtimPointParent.TransformPoint(localPos1);
+                worldPos1.z = -583;
+                float distance = Vector3.Distance(worldPos, worldPos1);
+                linePath.GetComponent<LineRenderer>().material = afterMat;
+                linePath.GetComponent<LineRenderer>().material.SetTextureScale("_MainTex", new Vector2(distance * 120 / 25,1));
+                linePath.GetComponent<LineRenderer>().SetPosition(0, worldPos1);
+                linePath.lineDir = isOut ? LineDir.Out : LineDir.In;
+                linePath.linePathContent = allServerMovePlans[i].desc;
+                linePath.manNum = allServerMovePlans[i].manNum;
+                linePath.homeNum = allServerMovePlans[i].homeNum;
+                linePath.completeNum = allServerMovePlans[i].completeNum;
+                linePath.dateTime = allServerMovePlans[i].dateTime;
+
+                if (linePath.lineDir == LineDir.Out)
                 {
                     zYYADatas[4].totalmanNum += allServerMovePlans[i].manNum;
                     zYYADatas[4].totalVillageCount += allServerMovePlans[i].villageCount;
@@ -275,7 +318,7 @@ public class RKZYLayer : YZTRootLayer
                     zYYADatas[5].totalMaterialPrize += allServerMovePlans[i].materialPrize;
                     zYYADatas[5].totalRoadCount += 1;
                 }
-                afterIndex++;
+                afterLinePaths.Add(linePath);
             }
 
             zYYADatas[0].totalmanNum = zYYADatas[1].totalmanNum + zYYADatas[2].totalmanNum;
@@ -300,8 +343,8 @@ public class RKZYLayer : YZTRootLayer
         RectTransform title2 = Instantiate(title1);
         title2.localScale = Vector3.one;
         title2.SetParent(movePlanAfterContent);
-        List<ServerMovePlan> serverMovePlans = new List<ServerMovePlan>(); 
-        for (int i = 0; i < beforeLinePaths.Length; i++)
+        List<ServerMovePlan> serverMovePlans = new List<ServerMovePlan>();
+        for (int i = 0; i < beforeLinePaths.Count; i++)
         {
             int tempI = i;
             RectTransform plan = Instantiate(plan1);
@@ -325,9 +368,9 @@ public class RKZYLayer : YZTRootLayer
             plan.GetChild(3).GetComponent<Text>().text = beforeLinePaths[i].manNum.ToString();
             plan.GetChild(4).GetComponent<Text>().text = beforeLinePaths[i].dateTime.ToString();
             movePlans.Add(thing1);
-            
+
         }
-        for (int i = 0; i < afterLinePaths.Length; i++)
+        for (int i = 0; i < afterLinePaths.Count; i++)
         {
             RectTransform plan = Instantiate(plan1);
             plan.SetParent(movePlanAfterContent);
@@ -350,7 +393,7 @@ public class RKZYLayer : YZTRootLayer
             plan.GetChild(3).GetComponent<Text>().text = afterLinePaths[i].manNum.ToString();
             plan.GetChild(4).GetComponent<Text>().text = afterLinePaths[i].dateTime.ToString();
             movePlans.Add(thing1);
-            
+
         }
         movePlanAfterContent.gameObject.SetActive(false);
 
@@ -399,8 +442,8 @@ public class RKZYLayer : YZTRootLayer
             beforeAfterIndex = 0;
             beforeBtn.GetComponent<Image>().sprite = sprites[0];
             afterBtn.GetComponent<Image>().sprite = sprites[1];
-            before.gameObject.SetActive(true);
-            after.gameObject.SetActive(false);
+            beforeC.gameObject.SetActive(true);
+            afterC.gameObject.SetActive(false);
 
             movePlanBeforeContent.gameObject.SetActive(true);
             movePlanAfterContent.gameObject.SetActive(false);
@@ -413,8 +456,8 @@ public class RKZYLayer : YZTRootLayer
             beforeAfterIndex = 1;
             beforeBtn.GetComponent<Image>().sprite = sprites[1];
             afterBtn.GetComponent<Image>().sprite = sprites[0];
-            before.gameObject.SetActive(false);
-            after.gameObject.SetActive(true);
+            beforeC.gameObject.SetActive(false);
+            afterC.gameObject.SetActive(true);
 
             movePlanBeforeContent.gameObject.SetActive(false);
             movePlanAfterContent.gameObject.SetActive(true);
@@ -472,16 +515,18 @@ public class RKZYLayer : YZTRootLayer
     }
 
     void InitAllPath() {
-        for (int i = 0; i < before.childCount; i++) {
-            if (before.GetChild(i).GetComponent<LinePath>()) {
-                linePaths.Add(before.GetChild(i).GetComponent<LinePath>());
+        for (int i = 0; i < beforeC.childCount; i++)
+        {
+            if (beforeC.GetChild(i).GetComponent<LinePath>())
+            {
+                linePaths.Add(beforeC.GetChild(i).GetComponent<LinePath>());
             }
         }
-        for (int i = 0; i < after.childCount; i++)
+        for (int i = 0; i < afterC.childCount; i++)
         {
-            if (after.GetChild(i).GetComponent<LinePath>())
+            if (afterC.GetChild(i).GetComponent<LinePath>())
             {
-                linePaths.Add(after.GetChild(i).GetComponent<LinePath>());
+                linePaths.Add(afterC.GetChild(i).GetComponent<LinePath>());
             }
         }
     }
@@ -509,5 +554,17 @@ public class RKZYLayer : YZTRootLayer
         {
             lineInfo.gameObject.SetActive(false);
         }
+
+        Ray ray = CameraManager.instance.secondCamera.ScreenPointToRay(Input.mousePosition);
+        RaycastHit hit;
+        if (Physics.Raycast(ray, out hit, 10000))
+        {
+            Debug.Log(hit.collider.gameObject.name);
+            // 检查射线是否击中 LineRenderer 所在的物体
+            if (hit.collider.GetComponent<LineRenderer>() != null)
+            {
+                hit.collider.gameObject.GetComponent<LinePath>().OnShow();
+            }
+        }
     }
 }

+ 65 - 1
Assets/StreamingAssets/moveplan.json

@@ -4,7 +4,11 @@
         "isOut": false,
         "desc": "新堤办、经开区22个村、市直城区60021户、144919人自筹机动车辆(手拖、小型客运车等)上乡村公路到新堤集中,再用45座客运车(需客运车216辆)上仙洪公路转入本市保护区峰口镇安置。",
         "from": "新堤",
+        "fromLong":	113.471339,
+        "fromLttd":	29.816258,
         "to": "峰口镇",
+        "toLong":	113.354731,
+        "toLttd":	30.082837,
         "manNum": 144919,
         "homeNum": 60021,
         "completeNum": 0,
@@ -17,7 +21,11 @@
         "isOut": false,
         "desc": "滨湖办办事处14个村、10349户、37922人自筹机动车辆(手拖、小型客运车等)上沙张路、乡村公路到滨湖、沙口集中,再用45座客运车(需客运车56辆)上仙洪公路转入本市保护区峰口镇安置。",
         "from": "滨湖办办事处",
+        "fromLong":	113.477743,
+        "fromLttd":	29.876072,
         "to": "峰口镇",
+        "toLong":	113.354731,
+        "toLttd":	30.082837,
         "manNum": 37922,
         "homeNum": 10349,
         "completeNum": 29020,
@@ -30,7 +38,11 @@
         "isOut": false,
         "desc": "黄家口镇13个村、11513户、37856人自筹机动车辆(手拖、小型客运车等)上黄老路、主隔堤、东荆河堤及乡村公路到黄家口镇集中,再用45座客运车(需客运车56辆)上黄汊公路、仙洪公路转入本市保护区万全镇安置。",
         "from": "黄家口镇",
+        "fromLong":	113.561250,
+        "fromLttd":	30.064031,
         "to": "万全镇",
+        "toLong":	113.390340,
+        "toLttd":	30.026691,
         "manNum": 37856,
         "homeNum": 11513,
         "completeNum": 21290,
@@ -43,7 +55,11 @@
         "isOut": false,
         "desc": "汊河镇19个村、14774户、55298人自筹机动车辆(手拖、小型客运车等)上汊腰路、黄观路、新燕路及乡村公路到汊河镇集中,再用45座客运车(需客运车82辆)上仙洪公路转入本市保护区万全镇安置。",
         "from": "汊河镇",
+        "fromLong":	113.472221,
+        "fromLttd":	29.998620,
         "to": "保护区万全镇",
+        "toLong": 113.373174,
+        "toLttd": 30.027921,
         "manNum": 55298,
         "homeNum": 14774,
         "completeNum": 42917,
@@ -56,7 +72,11 @@
         "isOut": false,
         "desc": "沙口镇17个村、13025户、55199人自筹机动车辆(手拖、小型客运车等)上沙张路、杨闸路、黄观路及乡村公路到沙口镇集中,再用45座客运车(需客运车82辆)上瞿峰公路、仙洪公路转入本市保护区代市镇安置。",
         "from": "沙口镇",
+        "fromLong":	113.289040,
+        "fromLttd":	29.980169,
         "to": "代市镇",
+        "toLong": 113.233989,
+        "toLttd": 30.022759,
         "manNum": 55199,
         "homeNum": 13025,
         "completeNum": 13653,
@@ -69,7 +89,11 @@
         "isOut": false,
         "desc": "瞿家湾镇6个村、4294户、19379人自筹机动车辆(手拖、小型客运车等)上乡村公路到瞿家湾集中,再用45座客运车(需客运车29辆)上瞿峰公路、仙洪公路转入本市保护区代市镇安置。",
         "from": "瞿家湾镇",
+        "fromLong":	113.194580,
+        "fromLttd":	29.963640,
         "to": "代市镇",
+        "toLong": 113.233989,
+        "toLttd": 30.022759,
         "manNum": 19379,
         "homeNum": 4294,
         "completeNum": 16870,
@@ -82,7 +106,11 @@
         "isOut": false,
         "desc": "万全镇(1个村)2210人自筹机动车辆(手拖、小型客运车等),上主隔堤转入本市保护区万全镇安置。",
         "from": "万全镇",
+        "fromLong":	113.390340,
+        "fromLttd":	30.026691,
         "to": "保护区万全镇",
+        "toLong": 113.373174,
+        "toLttd": 30.027921,
         "manNum": 2210,
         "homeNum": 0,
         "completeNum": 0,
@@ -94,8 +122,12 @@
         "isAfter": false,
         "isOut": false,
         "desc": "汊河镇19个村、14774户、55298人自筹机动车辆(手拖、小型客运车等)上汊腰路、黄观路、新燕路及乡村公路到汊河镇集中,再用45座客运车(需客运车82辆)上仙洪公路转入本市保护区万全镇安置。",
-        "from": "小港管理区",
+        "from": "汊河镇",
+        "fromLong":	113.472221,
+        "fromLttd":	29.998620,
         "to": "保护区万全镇",
+        "toLong": 113.373174,
+        "toLttd": 30.027921,
         "manNum": 55298,
         "homeNum": 14774,
         "completeNum": 25795,
@@ -212,7 +244,11 @@
         "isOut": false,
         "desc": "新堤办、经开区22个村、市直城区60021户、144919人自筹机动车辆(手拖、小型客运车等)上乡村公路到新堤集中,再用45座客运车(需客运车216辆)上仙洪公路转入本市保护区峰口镇安置。",
         "from": "峰口镇",
+        "fromLong":	113.354731,
+        "fromLttd":	30.082837,
         "to": "新堤",
+        "toLong":	113.471339,
+        "toLttd":	29.816258,
         "manNum": 144919,
         "homeNum": 60021,
         "completeNum": 0,
@@ -225,7 +261,11 @@
         "isOut": false,
         "desc": "滨湖办办事处14个村、10349户、37922人自筹机动车辆(手拖、小型客运车等)上沙张路、乡村公路到滨湖、沙口集中,再用45座客运车(需客运车56辆)上仙洪公路转入本市保护区峰口镇安置。",
         "from": "峰口镇",
+        "fromLong":	113.354731,
+        "fromLttd":	30.082837,
         "to": "滨湖办办事处",
+        "toLong":	113.477743,
+        "toLttd":	29.876072,
         "manNum": 37922,
         "homeNum": 10349,
         "completeNum": 24039,
@@ -238,7 +278,11 @@
         "isOut": false,
         "desc": "黄家口镇13个村、11513户、37856人自筹机动车辆(手拖、小型客运车等)上黄老路、主隔堤、东荆河堤及乡村公路到黄家口镇集中,再用45座客运车(需客运车56辆)上黄汊公路、仙洪公路转入本市保护区万全镇安置。",
         "from": "万全镇",
+        "fromLong":	113.390340,
+        "fromLttd":	30.026691,
         "to": "黄家口镇",
+        "toLong": 113.561250,
+        "toLttd": 30.064031,
         "manNum": 37856,
         "homeNum": 11513,
         "completeNum": 4075,
@@ -251,7 +295,11 @@
         "isOut": false,
         "desc": "汊河镇19个村、14774户、55298人自筹机动车辆(手拖、小型客运车等)上汊腰路、黄观路、新燕路及乡村公路到汊河镇集中,再用45座客运车(需客运车82辆)上仙洪公路转入本市保护区万全镇安置。",
         "from": "保护区万全镇",
+        "fromLong": 113.373174,
+        "fromLttd": 30.027921,
         "to": "汊河镇",
+        "toLong":	113.472221,
+        "toLttd":	29.998620,
         "manNum": 55298,
         "homeNum": 14774,
         "completeNum": 50377,
@@ -264,7 +312,11 @@
         "isOut": false,
         "desc": "沙口镇17个村、13025户、55199人自筹机动车辆(手拖、小型客运车等)上沙张路、杨闸路、黄观路及乡村公路到沙口镇集中,再用45座客运车(需客运车82辆)上瞿峰公路、仙洪公路转入本市保护区代市镇安置。",
         "from": "代市镇",
+        "fromLong": 113.233989,
+        "fromLttd": 30.022759,
         "to": "沙口镇",
+        "toLong":	113.289040,
+        "toLttd":	29.980169,
         "manNum": 55199,
         "homeNum": 13025,
         "completeNum": 10763,
@@ -277,7 +329,11 @@
         "isOut": false,
         "desc": "瞿家湾镇6个村、4294户、19379人自筹机动车辆(手拖、小型客运车等)上乡村公路到瞿家湾集中,再用45座客运车(需客运车29辆)上瞿峰公路、仙洪公路转入本市保护区代市镇安置。",
         "from": "代市镇",
+        "fromLong": 113.233989,
+        "fromLttd": 30.022759,
         "to": "瞿家湾镇",
+        "toLong":	113.194580,
+        "toLttd":	29.963640,
         "manNum": 19379,
         "homeNum": 4294,
         "completeNum": 6971,
@@ -290,7 +346,11 @@
         "isOut": false,
         "desc": "万全镇(1个村)2210人自筹机动车辆(手拖、小型客运车等),上主隔堤转入本市保护区万全镇安置。",
         "from": "保护区万全镇",
+        "fromLong": 113.373174,
+        "fromLttd": 30.027921,
         "to": "万全镇",
+        "toLong":	113.390340,
+        "toLttd":	30.026691,
         "manNum": 2210,
         "homeNum": 0,
         "completeNum": 0,
@@ -303,7 +363,11 @@
         "isOut": false,
         "desc": "汊河镇19个村、14774户、55298人自筹机动车辆(手拖、小型客运车等)上汊腰路、黄观路、新燕路及乡村公路到汊河镇集中,再用45座客运车(需客运车82辆)上仙洪公路转入本市保护区万全镇安置。",
         "from": "保护区万全镇",
+        "fromLong": 113.373174,
+        "fromLttd": 30.027921,
         "to": "汊河镇",
+        "toLong":	113.472221,
+        "toLttd":	29.998620,
         "manNum": 55298,
         "homeNum": 14774,
         "completeNum": 42250,

部分文件因文件數量過多而無法顯示