Compare commits

..

2 Commits

11 changed files with 5691 additions and 27 deletions

View File

@@ -0,0 +1,66 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-2090818468383864526
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 7
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: BugGlitch
m_Shader: {fileID: -6465566751694194690, guid: 7d84f38f95b036341be84c3534ef9627,
type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _ENUM_GRADIENT
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties: _Color
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _Texture:
m_Texture: {fileID: 2800000, guid: dffef66376be4fa480fb02b19edbe903, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _ENUM: 0
- _Frequency: 0.56
- _QueueControl: 0
- _QueueOffset: 0
- _Range: 1.73
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 0}
m_BuildTextureStacks: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c6b59f48358bcc84b90da01d1d68dc24
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -64,7 +64,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: d3bafdbb18d669844bc660cc9555ec99, type: 2}
- {fileID: 2100000, guid: c6b59f48358bcc84b90da01d1d68dc24, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

View File

@@ -44,7 +44,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7600480a20114f90a3cf7fea47d0b897, type: 3}
m_Name:
m_EditorClassIdentifier:
BUGCubePrefab: {fileID: 7123790971911496714, guid: 946b4ebaa9321484b86d3864f777b957,
bugCubePrefab: {fileID: 7123790971911496714, guid: 946b4ebaa9321484b86d3864f777b957,
type: 3}
AreaCenter: {x: 0, y: 0, z: 30}
AreaSize: {x: 30, y: 30, z: 30}

View File

@@ -1046,6 +1046,74 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f28214d1465c43208546605ea8a619db, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &789022162
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalPosition.x
value: 5
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalPosition.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalPosition.z
value: 35
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6227019518059310355, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_Name
value: Lever (11)
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: be07db3098b709a40a6965f50f8c9640, type: 3}
--- !u!1001 &817379214
PrefabInstance:
m_ObjectHideFlags: 0
@@ -1504,6 +1572,74 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1343948470
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalPosition.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalPosition.z
value: 35
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2356242250385391551, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6227019518059310355, guid: be07db3098b709a40a6965f50f8c9640,
type: 3}
propertyPath: m_Name
value: Lever (10)
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: be07db3098b709a40a6965f50f8c9640, type: 3}
--- !u!1001 &1424435846
PrefabInstance:
m_ObjectHideFlags: 0
@@ -3669,7 +3805,9 @@ SceneRoots:
- {fileID: 286998490}
- {fileID: 101296504}
- {fileID: 1755386927}
- {fileID: 1343948470}
- {fileID: 1549323716}
- {fileID: 789022162}
- {fileID: 2110019781}
- {fileID: 730184548946979397}
- {fileID: 627238400}

View File

@@ -72,11 +72,15 @@ namespace Script.Gameplay.Connect
IConnectable target = preConnection.target as IConnectable;
if (source != null && target != null)
{
GenerateConnectionLine(source, target);
var connectionLine = GenerateConnectionLine(source, target);
if (connectionLine == null)
{
Debug.LogWarning($"编号为{preConnection.PreConnectionID}的连接线存在重复连接,生成失败");
}
}
else
{
Debug.Log(preConnection.PreConnectionID + " connection failed to load.");
Debug.LogWarning($"编号为{preConnection.PreConnectionID}的连接线的配置错误,生成失败");
}
}
}

View File

@@ -149,6 +149,7 @@ namespace Script.Gameplay.Facility
// 利用DFS检测是否存在连接环
if (DfsCheckConnectionRing(this.gameObject))
{
BUGManager.Instance.LogStackOverflowBug(this.transform);
StartCoroutine(GameManager.Instance.ReStartGame());
return;
}

View File

@@ -6,14 +6,28 @@ using UnityEngine.Events;
namespace Script.Gameplay.Global
{
public struct TransformSnapshot
{
public Vector3 Position;
public Quaternion Rotation;
public Vector3 Scale;
public TransformSnapshot(Transform t)
{
Position = t.position;
Rotation = t.rotation;
Scale = t.localScale;
}
}
public struct StackOverflowBUGLog
{
public Transform TargetTransform;
public TransformSnapshot TargetSnapshot;
public int BeTriggerCycle; // 触发时的游戏循环次数
public StackOverflowBUGLog(Transform targetTransform, int beTriggerCycle)
{
TargetTransform = targetTransform;
TargetSnapshot = new TransformSnapshot(targetTransform);
BeTriggerCycle = beTriggerCycle;
}
}
@@ -24,57 +38,60 @@ namespace Script.Gameplay.Global
[Header("天核区域检测设置")] [SerializeField] private Vector3 AreaCenter = Vector3.zero;
[SerializeField] private Vector3 AreaSize = new Vector3(50, 50, 50);
public UnityEvent OnBUGHappenedInArea;
public UnityEvent OnBugHappenedInArea;
private List<StackOverflowBUGLog> stackOverflowBugLogs = new List<StackOverflowBUGLog>();
private List<GameObject> bugCubes = new List<GameObject>();
private void Start()
{
OnBUGHappenedInArea.AddListener(() =>
{
Debug.LogWarning("天核区域内检测到BUG立方体");
});
GameManager.Instance.OnGameStart += GenerateBUGCubes;
}
OnBugHappenedInArea.AddListener(() => { Debug.Log("天核区域内检测到BUG立方体"); });
public void LogStackOverflowBUG(Transform targetTransform)
GameManager.Instance.OnGameStart += GenerateBugCubes;
}
public void LogStackOverflowBug(Transform targetTransform)
{
int beTriggerCycle = GameDataManager.Instance.TotalLoopCount;
stackOverflowBugLogs.Add(new StackOverflowBUGLog(targetTransform, beTriggerCycle));
StartCoroutine(GameManager.Instance.ReStartGame());
}
public void GenerateBUGCubes()
public void GenerateBugCubes()
{
foreach (var bugCube in bugCubes)
{
Destroy(bugCube);
}
bugCubes.Clear();
int currentCycle = GameDataManager.Instance.TotalLoopCount;
// 记录的BUG位置生成BUG立方体
foreach (var log in stackOverflowBugLogs)
{
if (bugCubePrefab != null)
{
// 仅在下一次循环生成BUG立方体
if (log.BeTriggerCycle + 1 != currentCycle) continue;
GameObject go = Instantiate(bugCubePrefab, log.TargetTransform.position, Quaternion.identity);
bugCubes.Add(go);
// 仅在下一、二次循环生成BUG立方体
if (currentCycle - log.BeTriggerCycle >= 0 && currentCycle - log.BeTriggerCycle < 2)
{
GameObject go = Instantiate(bugCubePrefab, log.TargetSnapshot.Position, Quaternion.identity);
bugCubes.Add(go);
}
}
}
// 检测天核区域内是否有BUG立方体
Collider[] colliders = Physics.OverlapBox(AreaCenter, AreaSize * 0.5f);
foreach (var collider in colliders)
{
if (bugCubes.Contains(collider.gameObject))
{
OnBUGHappenedInArea?.Invoke();
OnBugHappenedInArea?.Invoke();
break;
}
}
}
// 可视化天核区域
private void OnDrawGizmosSelected()
{

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 7d84f38f95b036341be84c3534ef9627
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}

View File

@@ -2423,7 +2423,7 @@
"m_Title": "Timer",
"m_Position": {
"x": -2373.142822265625,
"y": 1482.857177734375
"y": 1482.8570556640625
}
}
@@ -2689,7 +2689,7 @@
"m_Title": "Noise",
"m_Position": {
"x": -3592.0,
"y": 620.0
"y": 619.9999389648438
}
}