Скрипт генерации карты и зоны тригера
Закончен скрипт генерации карты по готовым префабам, закончен скрипт тригерной зоны
This commit is contained in:
parent
3d15c0dc4c
commit
6f4c1454cb
@ -12,10 +12,10 @@ GameObject:
|
||||
- component: {fileID: 7394885590096691697}
|
||||
- component: {fileID: 5911224615680533587}
|
||||
- component: {fileID: 1504977724755762144}
|
||||
- component: {fileID: 6673592107442122043}
|
||||
- component: {fileID: 6891874711752822541}
|
||||
m_Layer: 0
|
||||
m_Name: Spawn Collider
|
||||
m_TagString: Untagged
|
||||
m_TagString: Trigger Zone
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
@ -106,7 +106,7 @@ BoxCollider:
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &6673592107442122043
|
||||
--- !u!114 &6891874711752822541
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@ -115,12 +115,13 @@ MonoBehaviour:
|
||||
m_GameObject: {fileID: 6148571252392801090}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ca3942fa12d4a6d4697bcdb9318ea7a7, type: 3}
|
||||
m_Script: {fileID: 11500000, guid: a0f1e849ecedb97408348ccf9f1e6c2e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_Tiles:
|
||||
- {fileID: 8202227058476080034}
|
||||
_CurrentTile: {fileID: 8202227058476080034}
|
||||
TriggerZoneEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
_wasTrigged: 0
|
||||
--- !u!1 &8202227058476080034
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -1,107 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &8202227058476080034
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4758555326874066992}
|
||||
- component: {fileID: 5623858715958442652}
|
||||
- component: {fileID: 3165099950913968719}
|
||||
- component: {fileID: 6729134530726316574}
|
||||
m_Layer: 0
|
||||
m_Name: Floor (Green)
|
||||
m_TagString: Tile
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4758555326874066992
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8202227058476080034}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 20, y: 0.01, z: 20}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &5623858715958442652
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8202227058476080034}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &3165099950913968719
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8202227058476080034}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 269d1156437a06f419eeb0df86e3f6e0, 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_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &6729134530726316574
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8202227058476080034}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 05ef6f657d9f98f4081a7578483003ac
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,107 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &8202227058476080034
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4758555326874066992}
|
||||
- component: {fileID: 5623858715958442652}
|
||||
- component: {fileID: 3165099950913968719}
|
||||
- component: {fileID: 6729134530726316574}
|
||||
m_Layer: 0
|
||||
m_Name: Floor (White)
|
||||
m_TagString: Tile
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4758555326874066992
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8202227058476080034}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 20, y: 0.01, z: 20}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &5623858715958442652
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8202227058476080034}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &3165099950913968719
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8202227058476080034}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: dab2c2fbf15f2b44390b21c1b03d6d98, 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_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &6729134530726316574
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8202227058476080034}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8c48eaa489629fd4b9fbfd4eac461987
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,107 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &8202227058476080034
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4758555326874066992}
|
||||
- component: {fileID: 5623858715958442652}
|
||||
- component: {fileID: 3165099950913968719}
|
||||
- component: {fileID: 6729134530726316574}
|
||||
m_Layer: 0
|
||||
m_Name: Floor (Yellow)
|
||||
m_TagString: Tile
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4758555326874066992
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8202227058476080034}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 20, y: 0.01, z: 20}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &5623858715958442652
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8202227058476080034}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &3165099950913968719
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8202227058476080034}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 820c6d2abd6f7cd4dad1abe9303142eb, 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_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &6729134530726316574
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8202227058476080034}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 75d15b80cec35864780d16105cf87076
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,37 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
public class SpawnTileScript : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private List<GameObject> _Tiles = new List<GameObject>();
|
||||
[SerializeField]
|
||||
private GameObject _CurrentTile;
|
||||
|
||||
private bool _Instantiated = false;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//private void OnTriggerEnter(Collider other)
|
||||
//{
|
||||
// if (other.gameObject.tag == "Player")
|
||||
// {
|
||||
// if (_Instantiated)
|
||||
// {
|
||||
// GenerateTile(_Tiles[0]);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
public void GenerateTile(GameObject tile, Vector3 pos, Quaternion rot)
|
||||
{
|
||||
//Instantiate(tile, new Vector3(_CurrentTile.transform.position.x, _CurrentTile.transform.position.y, _CurrentTile.transform.position.z+20), _CurrentTile.transform.rotation);
|
||||
Instantiate(tile, pos, rot);
|
||||
}
|
||||
}
|
@ -1,6 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
@ -16,89 +14,162 @@ public class TileManagerScript : MonoBehaviour
|
||||
private int _NumTile;
|
||||
|
||||
/// <summary>
|
||||
/// номер текущего тайла
|
||||
/// расстояние между центрами двух тайлов, нужно переделать, чтобы бралось само
|
||||
/// </summary>
|
||||
public int CurrentTile;
|
||||
|
||||
//
|
||||
[SerializeField]
|
||||
private float _DistanceTiles;
|
||||
|
||||
/// <summary>
|
||||
/// список префабов для случайной генерации
|
||||
/// </summary>
|
||||
[SerializeField]
|
||||
private List<GameObject> _TilesPref = new List<GameObject>();
|
||||
private List<GameObject> _TilePrefs = new List<GameObject>();
|
||||
|
||||
/// <summary>
|
||||
/// поле массива тайлов
|
||||
/// </summary>
|
||||
private List<GameObject> _Tiles;
|
||||
[SerializeField]
|
||||
private List<GameObject> _Tiles = new List<GameObject>();
|
||||
|
||||
// при запуске сцены, создание новых тайлов
|
||||
/// <summary>
|
||||
/// при запуске сцены, создание новых тайлов
|
||||
/// </summary>
|
||||
private void Awake()
|
||||
{
|
||||
Debug.Log($"NumTile = {_NumTile}");
|
||||
// создание массива
|
||||
_Tiles = new List<GameObject>(_NumTile);
|
||||
Debug.Log($"_Tiles = {_Tiles.Count}");
|
||||
// запихивание в массив тайлов null, чтобы понимать, что там пусто
|
||||
for (int i = 0; i < _Tiles.Count; i++)
|
||||
{
|
||||
_Tiles[i] = null;
|
||||
}
|
||||
Debug.Log($"_Tiles = {_Tiles.Count}");
|
||||
float z = (_NumTile/2) * _DistanceTiles;
|
||||
Debug.Log($"z = {z}");
|
||||
// координата самого дальнего тайла
|
||||
float z = -(_NumTile / 2) * _DistanceTiles;
|
||||
|
||||
// создание тайлов назад от игрока, где i номер тайла, а z координата transfrom.position.z
|
||||
for (int i = 0; i < _NumTile; i++)
|
||||
{
|
||||
|
||||
// генерация нового тайла, с собственным z
|
||||
GenerateTile(new Vector3(0, 0, z), new Quaternion(0, 0, 0, 0));
|
||||
z -= _DistanceTiles;
|
||||
}
|
||||
|
||||
// увелечение позиции тайла по transform.position.z
|
||||
z += _DistanceTiles;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Генератор тайлов с собственным положением
|
||||
/// генератор тайлов по заданному transform
|
||||
/// </summary>
|
||||
/// <param name="tile"></param>
|
||||
/// <param name="pos"></param>
|
||||
/// <param name="rot"></param>
|
||||
public void GenerateTile(Vector3 pos, Quaternion rot)
|
||||
/// <param name="pos">позиция нового тайла</param>
|
||||
/// <param name="rot">поворот нового тайла</param>
|
||||
/// <returns>возвращает созданный тайл</returns>
|
||||
public GameObject GenerateTile(Vector3 pos, Quaternion rot)
|
||||
{
|
||||
Instantiate(_TilesPref[0], pos, rot);
|
||||
// создание нового тайла
|
||||
GameObject newTile = Instantiate(GetRandomObject(_TilePrefs), pos, rot);
|
||||
|
||||
// добавление массива в отслеживание
|
||||
_Tiles.Add(newTile);
|
||||
|
||||
// подпись нового тайла на эвент
|
||||
SubTrigEvent(newTile);
|
||||
|
||||
// перемещение нового тайла в менеджер как child
|
||||
newTile.transform.SetParent(gameObject.transform);
|
||||
|
||||
//Debug.Log($"Was created new tile awake");
|
||||
|
||||
return newTile;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Генератор тайлов за последним
|
||||
/// генерация тайла с добавлением его в конец списка
|
||||
/// </summary>
|
||||
public void GenerateTile()
|
||||
/// <returns>возвращает созданный тайл</returns>
|
||||
public GameObject GenerateTile()
|
||||
{
|
||||
Vector3 pos = _Tiles.Last().transform.position;
|
||||
Quaternion rot = _Tiles.Last().transform.rotation;
|
||||
// индекс последнего элемента
|
||||
int index = _NumTile - 1;
|
||||
|
||||
// позиция и поворот последнего тайла
|
||||
Vector3 pos = _Tiles[index].transform.position;
|
||||
Quaternion rot = _Tiles[index].transform.rotation;
|
||||
|
||||
// создание нового position для генерации нового тайла
|
||||
Vector3 newVector = new Vector3(pos.x, pos.y, pos.z + _DistanceTiles);
|
||||
Instantiate(_TilesPref[0], new Vector3(), rot);
|
||||
|
||||
// создание нового тайла и получение его адреса
|
||||
GameObject newTile = Instantiate(GetRandomObject(_TilePrefs), newVector, rot);
|
||||
|
||||
// добавление массива в отслеживание
|
||||
_Tiles.Add(newTile);
|
||||
|
||||
// перемещение нового тайла в менеджер как child
|
||||
newTile.transform.SetParent(gameObject.transform);
|
||||
|
||||
// подпись нового тайла на эвент тригера зоны
|
||||
SubTrigEvent(newTile);
|
||||
|
||||
// удаление первого в списке тайла
|
||||
DeleteTile();
|
||||
|
||||
//Debug.Log($"Was created new tile");
|
||||
|
||||
return newTile;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Удалитель тайлов
|
||||
/// </summary>
|
||||
/// <param name="tile"></param>
|
||||
public void DeleteTile()
|
||||
{
|
||||
Destroy(_Tiles[0]);
|
||||
_Tiles.RemoveAt(0);
|
||||
//GenerateTile();
|
||||
// индекс первого тайла в списке
|
||||
int index = 0;
|
||||
|
||||
// удаление GameObject первого тайла
|
||||
Destroy(_Tiles[index]);
|
||||
|
||||
// удаление первого тайла в списке
|
||||
_Tiles.RemoveAt(index);
|
||||
|
||||
//Debug.Log("Was deleted tile");
|
||||
}
|
||||
|
||||
void Start()
|
||||
/// <summary>
|
||||
/// Подпись на триггер эвент в тайле
|
||||
/// </summary>
|
||||
/// <param name="tile">передаваемый тайл на подпись</param>
|
||||
private void SubTrigEvent(GameObject tile)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
// прохождение по всем child в tile
|
||||
foreach (Transform child in tile.transform)
|
||||
{
|
||||
// если тайл является тригерной зоной, то подписаться и закончить
|
||||
if (child.CompareTag("Trigger Zone"))
|
||||
{
|
||||
// в подпись передаётся анонимная функция, так как GenerateTile() возвращает GameObject
|
||||
child.GetComponent<TriggerZoneScript>().TriggerZoneEvent.AddListener(() => GenerateTile());
|
||||
|
||||
// выход из цикла
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void test()
|
||||
{
|
||||
GenerateTile();
|
||||
}
|
||||
/// <summary>
|
||||
/// Генератор случайно взятого объекта
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="list">Список из которого брать</param>
|
||||
/// <returns></returns>
|
||||
T GetRandomObject<T>(List<T> list)
|
||||
{
|
||||
// проверка на пустоту списка
|
||||
if (list == null || list.Count == 0)
|
||||
{
|
||||
return default;
|
||||
}
|
||||
|
||||
// Генерация случайного индекса
|
||||
int randomIndex = UnityEngine.Random.Range(0, list.Count);
|
||||
return list[randomIndex];
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,41 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
/// <summary>
|
||||
/// Обрабатывает триггерную зону тайла и вызывает эвент
|
||||
/// </summary>
|
||||
public class TriggerZoneScript : MonoBehaviour
|
||||
{
|
||||
/// <summary>
|
||||
/// Эвент, который собирает подписи, необходимо присвоить ему новый UnityEvent
|
||||
/// </summary>
|
||||
public UnityEvent TriggerZoneEvent = new UnityEvent();
|
||||
|
||||
/// <summary>
|
||||
/// флаг реакции тригера
|
||||
/// </summary>
|
||||
[SerializeField]
|
||||
private bool _wasTrigged = false;
|
||||
|
||||
/// <summary>
|
||||
/// Реакция тригерной зоны на вхождение игрока
|
||||
/// </summary>
|
||||
/// <param name="other">объект тригера</param>
|
||||
private void OnTriggerEnter(Collider other)
|
||||
{
|
||||
// если тег игрока и первая реакция
|
||||
if (other.gameObject.CompareTag("Player") && !_wasTrigged)
|
||||
{
|
||||
|
||||
// Debug.Log("Was trigged");
|
||||
|
||||
// изменение, что тригер сработал
|
||||
_wasTrigged = !_wasTrigged;
|
||||
|
||||
// вызов всех подписей
|
||||
TriggerZoneEvent.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ca3942fa12d4a6d4697bcdb9318ea7a7
|
||||
guid: a0f1e849ecedb97408348ccf9f1e6c2e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
@ -222,7 +222,7 @@ Transform:
|
||||
m_GameObject: {fileID: 678815814}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -0.75, y: 0.49500084, z: -15}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
@ -373,67 +373,6 @@ MonoBehaviour:
|
||||
m_LightCookieSize: {x: 1, y: 1}
|
||||
m_LightCookieOffset: {x: 0, y: 0}
|
||||
m_SoftShadowQuality: 0
|
||||
--- !u!1001 &842499528
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 4758555326874066992, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -0.545702
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4758555326874066992, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4758555326874066992, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0.79941034
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4758555326874066992, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4758555326874066992, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4758555326874066992, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4758555326874066992, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4758555326874066992, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4758555326874066992, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4758555326874066992, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8202227058476080034, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Floor (Black)
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8202227058476080034, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
--- !u!1 &961775090
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -552,7 +491,7 @@ GameObject:
|
||||
- component: {fileID: 1034189938}
|
||||
m_Layer: 0
|
||||
m_Name: Tile Manager
|
||||
m_TagString: Untagged
|
||||
m_TagString: Tile Manager
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
@ -569,11 +508,11 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 673f57172fdd6084f8c03e4433c6967c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_NumTile: 6
|
||||
CurrentTile: 0
|
||||
_NumTile: 30
|
||||
_DistanceTiles: 20
|
||||
_TilesPref:
|
||||
_TilePrefs:
|
||||
- {fileID: 8202227058476080034, guid: d113347864294f441883149abd377a24, type: 3}
|
||||
_Tiles: []
|
||||
--- !u!4 &1034189939
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -733,6 +672,5 @@ SceneRoots:
|
||||
- {fileID: 1544359499}
|
||||
- {fileID: 691500690}
|
||||
- {fileID: 678815818}
|
||||
- {fileID: 842499528}
|
||||
- {fileID: 961775094}
|
||||
- {fileID: 1034189939}
|
||||
|
@ -25,7 +25,7 @@ MonoBehaviour:
|
||||
m_SupportsTerrainHoles: 1
|
||||
m_SupportsHDR: 1
|
||||
m_HDRColorBufferPrecision: 0
|
||||
m_MSAA: 1
|
||||
m_MSAA: 4
|
||||
m_RenderScale: 1
|
||||
m_UpscalingFilter: 0
|
||||
m_FsrOverrideSharpness: 0
|
||||
@ -36,7 +36,7 @@ MonoBehaviour:
|
||||
m_MainLightRenderingMode: 0
|
||||
m_MainLightShadowsSupported: 0
|
||||
m_MainLightShadowmapResolution: 1024
|
||||
m_AdditionalLightsRenderingMode: 2
|
||||
m_AdditionalLightsRenderingMode: 1
|
||||
m_AdditionalLightsPerObjectLimit: 4
|
||||
m_AdditionalLightShadowsSupported: 0
|
||||
m_AdditionalLightsShadowmapResolution: 1024
|
||||
|
@ -36,7 +36,7 @@ GraphicsSettings:
|
||||
m_PreloadedShaders: []
|
||||
m_PreloadShadersBatchTimeLimit: -1
|
||||
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_CustomRenderPipeline: {fileID: 11400000, guid: 57201e7d7dfda4148bbd1249c9778e96, type: 2}
|
||||
m_CustomRenderPipeline: {fileID: 11400000, guid: 87d88add63faee0449b1693dddb4f467, type: 2}
|
||||
m_TransparencySortMode: 0
|
||||
m_TransparencySortAxis: {x: 0, y: 0, z: 1}
|
||||
m_DefaultRenderingPath: 1
|
||||
|
@ -4,7 +4,7 @@
|
||||
QualitySettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 5
|
||||
m_CurrentQuality: 5
|
||||
m_CurrentQuality: 0
|
||||
m_QualitySettings:
|
||||
- serializedVersion: 3
|
||||
name: Very Low
|
||||
@ -17,12 +17,12 @@ QualitySettings:
|
||||
shadowNearPlaneOffset: 3
|
||||
shadowCascade2Split: 0.33333334
|
||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||
shadowmaskMode: 0
|
||||
shadowmaskMode: 1
|
||||
skinWeights: 1
|
||||
globalTextureMipmapLimit: 1
|
||||
textureMipmapLimitSettings: []
|
||||
anisotropicTextures: 0
|
||||
antiAliasing: 0
|
||||
antiAliasing: 4
|
||||
softParticles: 0
|
||||
softVegetation: 0
|
||||
realtimeReflectionProbes: 0
|
||||
@ -103,7 +103,10 @@ QualitySettings:
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
excludedTargetPlatforms:
|
||||
- Server
|
||||
- Standalone
|
||||
- Android
|
||||
- serializedVersion: 3
|
||||
name: Medium
|
||||
pixelLightCount: 1
|
||||
@ -152,7 +155,10 @@ QualitySettings:
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
excludedTargetPlatforms:
|
||||
- Android
|
||||
- Server
|
||||
- Standalone
|
||||
- serializedVersion: 3
|
||||
name: High
|
||||
pixelLightCount: 2
|
||||
@ -201,7 +207,10 @@ QualitySettings:
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
excludedTargetPlatforms:
|
||||
- Android
|
||||
- Server
|
||||
- Standalone
|
||||
- serializedVersion: 3
|
||||
name: Very High
|
||||
pixelLightCount: 3
|
||||
@ -250,7 +259,10 @@ QualitySettings:
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
excludedTargetPlatforms:
|
||||
- Android
|
||||
- Server
|
||||
- Standalone
|
||||
- serializedVersion: 3
|
||||
name: Ultra
|
||||
pixelLightCount: 4
|
||||
@ -299,7 +311,10 @@ QualitySettings:
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
excludedTargetPlatforms:
|
||||
- Android
|
||||
- Server
|
||||
- Standalone
|
||||
m_TextureMipmapLimitGroupNames: []
|
||||
m_PerPlatformDefaultQuality:
|
||||
Android: 2
|
||||
@ -310,6 +325,7 @@ QualitySettings:
|
||||
Nintendo Switch: 5
|
||||
PS4: 5
|
||||
PS5: 5
|
||||
Server: 0
|
||||
Stadia: 5
|
||||
Standalone: 5
|
||||
WebGL: 3
|
||||
|
@ -5,6 +5,8 @@ TagManager:
|
||||
serializedVersion: 2
|
||||
tags:
|
||||
- Tile
|
||||
- Trigger Zone
|
||||
- Tile Manager
|
||||
layers:
|
||||
- Default
|
||||
- TransparentFX
|
||||
|
Loading…
x
Reference in New Issue
Block a user