diff --git a/Assets/Scenes/Backpack.unity b/Assets/Scenes/Backpack.unity
new file mode 100644
index 0000000..e852fea
--- /dev/null
+++ b/Assets/Scenes/Backpack.unity
@@ -0,0 +1,337 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &229555113
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 229555116}
+ - component: {fileID: 229555115}
+ - component: {fileID: 229555114}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &229555114
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 229555113}
+ m_Enabled: 1
+--- !u!20 &229555115
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 229555113}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: -1
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &229555116
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 229555113}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1, z: -10}
+ 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!1 &783503795
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 783503799}
+ - component: {fileID: 783503798}
+ - component: {fileID: 783503797}
+ - component: {fileID: 783503796}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &783503796
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 783503795}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c7b194f74c5d4aa7bff9940b5d4497ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &783503797
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 783503795}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Version: 1
+ m_UsePipelineSettings: 1
+ m_AdditionalLightsShadowResolutionTier: 2
+ m_LightLayerMask: 1
+ m_CustomShadowLayers: 0
+ m_ShadowLayerMask: 1
+ m_LightCookieSize: {x: 1, y: 1}
+ m_LightCookieOffset: {x: 0, y: 0}
+--- !u!108 &783503798
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 783503795}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &783503799
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 783503795}
+ m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
diff --git a/Assets/Scenes/Backpack.unity.meta b/Assets/Scenes/Backpack.unity.meta
new file mode 100644
index 0000000..36e0331
--- /dev/null
+++ b/Assets/Scenes/Backpack.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: dddd438c50e8c4d4f95cb21c36dc6a26
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/HexGrid.unity b/Assets/Scenes/HexGrid.unity
index d7edca1..32ec8fc 100644
--- a/Assets/Scenes/HexGrid.unity
+++ b/Assets/Scenes/HexGrid.unity
@@ -270,8 +270,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 9b6b4b566df64e83af05ea12942cc089, type: 3}
m_Name:
m_EditorClassIdentifier:
- width: 3
- height: 3
+ width: 8
+ height: 8
cellPrefab: {fileID: 566399494}
defaultColor: {r: 1, g: 1, b: 1, a: 1}
touchedColor: {r: 1, g: 0, b: 1, a: 1}
diff --git a/Assets/Scripts/Grid/GridManager.cs b/Assets/Scripts/Grid/GridManager.cs
index 1e82a19..826cf2f 100644
--- a/Assets/Scripts/Grid/GridManager.cs
+++ b/Assets/Scripts/Grid/GridManager.cs
@@ -3,6 +3,10 @@ using UnityEngine;
namespace DefaultNamespace
{
+ public interface IGridManager
+ {
+ }
+
public class GridManager : MonoBehaviour, IGridManager
{
[SerializeField] private int xCount;
diff --git a/Assets/Scripts/Grid/IGrid.cs b/Assets/Scripts/Grid/IGrid.cs
index e8ccb1a..6ddd876 100644
--- a/Assets/Scripts/Grid/IGrid.cs
+++ b/Assets/Scripts/Grid/IGrid.cs
@@ -47,8 +47,4 @@ namespace DefaultNamespace
_isOccupied = false;
}
}
-
- public interface IGridManager
- {
- }
}
\ No newline at end of file
diff --git a/Assets/Scripts/Hexagon/HexGrid.cs b/Assets/Scripts/Hexagon/HexGrid.cs
index 4afcb01..c3a78d3 100644
--- a/Assets/Scripts/Hexagon/HexGrid.cs
+++ b/Assets/Scripts/Hexagon/HexGrid.cs
@@ -4,11 +4,29 @@ using Random = UnityEngine.Random;
public class HexGrid : MonoBehaviour
{
+ ///
+ /// 格子宽度
+ ///
public int width = 6;
+
+ ///
+ /// 格子高度
+ ///
public int height = 6;
+ ///
+ /// 格子实例预制体(用于实际角色放入交互,也有可能会删掉改用判断位置的方式处理交互)
+ ///
public HexCell cellPrefab;
+
+ ///
+ /// 六边形渲染mesh
+ ///
HexMesh hexMesh;
+
+ ///
+ /// 格子存储
+ ///
HexCell[] cells;
public Color defaultColor = Color.white;
@@ -30,34 +48,58 @@ public class HexGrid : MonoBehaviour
private void Start()
{
+ // 渲染mesh
hexMesh.Triangulate(cells);
}
+ ///
+ /// 创建格子以及实例
+ ///
+ ///
+ ///
+ ///
void CreateCell(int x, int z, int i)
{
Vector3 position;
position.x = (x + z * 0.5f - z / 2) * (HexMetrics.innerRadius * 2f);
position.y = 0f;
- position.z = HexMetrics.offset * z;
+ position.z = HexMetrics.offset * z;
HexCell cell = cells[i] = Instantiate(cellPrefab);
cell.transform.SetParent(transform, false);
cell.transform.localPosition = position;
cell.coordinates = HexCoordinates.FromOffsetCoordinates(x, z);
- cell.color = new Color(Random.Range(0,1f), Random.Range(0,1f), Random.Range(0,1f), 1);
-
+ cell.color = new Color(Random.Range(0, 1f), Random.Range(0, 1f), Random.Range(0, 1f), 1);
}
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
- TouchCell(Input.mousePosition);
+ HandleInput();
}
}
+ ///
+ /// 射线检测拿到射线点,然后传递给TouchCell进行实际位置判断
+ ///
+ void HandleInput()
+ {
+ Ray inputRay = Camera.main.ScreenPointToRay(Input.mousePosition);
+ RaycastHit hit;
+ if (Physics.Raycast(inputRay, out hit))
+ {
+ TouchCell(hit.point);
+ }
+ }
+
+ ///
+ /// 判断点击的哪个格子
+ ///
+ ///
public void TouchCell(Vector3 position)
{
+ // 将 position 从世界空间变换到本地空间
position = transform.InverseTransformPoint(position);
HexCoordinates coordinates = HexCoordinates.FromPosition(position);
int index = coordinates.X + coordinates.Z * width + coordinates.Z / 2;
diff --git a/Assets/Scripts/Hexagon/HexMesh.cs b/Assets/Scripts/Hexagon/HexMesh.cs
index d21ccc2..da04f66 100644
--- a/Assets/Scripts/Hexagon/HexMesh.cs
+++ b/Assets/Scripts/Hexagon/HexMesh.cs
@@ -8,9 +8,11 @@ public class HexMesh : MonoBehaviour
List vertices;
List triangles;
List colors;
+ MeshCollider meshCollider;
void Awake()
{
+ meshCollider = gameObject.AddComponent();
GetComponent().mesh = hexMesh = new Mesh();
hexMesh.name = "Hex Mesh";
vertices = new List();
@@ -33,6 +35,7 @@ public class HexMesh : MonoBehaviour
hexMesh.colors = colors.ToArray();
hexMesh.triangles = triangles.ToArray();
hexMesh.RecalculateNormals();
+ meshCollider.sharedMesh = hexMesh;
}
void AddTriangle(Vector3 v1, Vector3 v2, Vector3 v3)
diff --git a/JinChanChan.sln.DotSettings.user b/JinChanChan.sln.DotSettings.user
index 23704b8..83f1461 100644
--- a/JinChanChan.sln.DotSettings.user
+++ b/JinChanChan.sln.DotSettings.user
@@ -1,3 +1,4 @@
ForceIncluded
+ ForceIncluded
ForceIncluded
\ No newline at end of file