47 lines
1.5 KiB
C#
47 lines
1.5 KiB
C#
using UnityEngine;
|
|
|
|
namespace Hallucinate.GameSetup.Maze
|
|
{
|
|
[CreateAssetMenu(fileName = "MazeVisualProfile", menuName = "Hallucinate/Maze/Visual Profile")]
|
|
public class MazeVisualProfile : ScriptableObject
|
|
{
|
|
[Header("Rotation Offsets")]
|
|
public float tJunctionOffset = 0f;
|
|
public float cornerOffset = 0f;
|
|
public float deadEndOffset = 0f;
|
|
|
|
[Header("Prefabs")]
|
|
public GameObject wallPrefab;
|
|
public GameObject corridorPrefab;
|
|
public GameObject processingPrefab;
|
|
public GameObject pathPrefab;
|
|
public GameObject startPrefab;
|
|
public GameObject endPrefab;
|
|
|
|
[Header("Corridor Types")]
|
|
public GameObject corridorStraight;
|
|
public GameObject corridorCorner;
|
|
public GameObject corridorTJunction;
|
|
public GameObject corridorCross;
|
|
public GameObject corridorDeadEnd;
|
|
|
|
[Header("Visualization Settings")]
|
|
public float scale = 1f;
|
|
public float animationDuration = 0.25f;
|
|
|
|
public GameObject GetPrefab(MazeCellType type)
|
|
{
|
|
return type switch
|
|
{
|
|
MazeCellType.Wall => wallPrefab,
|
|
MazeCellType.Corridor => corridorPrefab,
|
|
MazeCellType.Processing => processingPrefab,
|
|
MazeCellType.Path => pathPrefab,
|
|
MazeCellType.Start => startPrefab,
|
|
MazeCellType.End => endPrefab,
|
|
_ => null
|
|
};
|
|
}
|
|
}
|
|
}
|