Compare commits
5
Commits
6148889fc1
...
665114b7dc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
665114b7dc | ||
|
|
4549617275 | ||
|
|
db541fed8a | ||
|
|
085429d5ca | ||
|
|
981d081bed |
No files matched your search
Generated
+13
@@ -0,0 +1,13 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# Rider ignored files
|
||||||
|
/contentModel.xml
|
||||||
|
/projectSettingsUpdater.xml
|
||||||
|
/modules.xml
|
||||||
|
/.idea.CourierOldRe.iml
|
||||||
|
# Editor-based HTTP Client requests
|
||||||
|
/httpRequests/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
||||||
Generated
+8
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="UserContentModel">
|
||||||
|
<attachedFolders />
|
||||||
|
<explicitIncludes />
|
||||||
|
<explicitExcludes />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
Generated
+6
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@@ -1,21 +1,24 @@
|
|||||||
using Code.App.StateMachine;
|
using Code.App.StateMachine;
|
||||||
|
using Code.Gameplay.Camera;
|
||||||
using Code.Input;
|
using Code.Input;
|
||||||
using Code.Scenes;
|
using Code.Scenes;
|
||||||
using Code.StateMachine;
|
using Code.StateMachine;
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace Code.App.AppStates
|
namespace Code.App.AppStates
|
||||||
{
|
{
|
||||||
public class GameplayState : BaseState<AppStateMachineContext>
|
public class GameplayState : BaseState<AppStateMachineContext>
|
||||||
{
|
{
|
||||||
|
|
||||||
public GameplayState(AppStateMachineContext context) : base(context)
|
public GameplayState(AppStateMachineContext context) : base(context)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void EnterState()
|
public override void EnterState()
|
||||||
{
|
{
|
||||||
Context.SceneLoaderService.LoadScene((int)SceneIds.Gameplay, SceneLoaded);
|
Context.SceneLoaderService.LoadScene((int)SceneIds.MovementDev, SceneLoaded);
|
||||||
Context.InputService.EnableMap(ActionMappings.Gameplay);
|
Context.InputService.EnableMap(ActionMappings.Gameplay);
|
||||||
|
|
||||||
|
Context.CameraStateMachine.SwitchState(CameraMode.FirstPerson);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SceneLoaded()
|
private void SceneLoaded()
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Code.App.StateMachine;
|
using Code.App.StateMachine;
|
||||||
|
using Code.Gameplay.Camera;
|
||||||
using Code.Input;
|
using Code.Input;
|
||||||
using Code.Scenes;
|
using Code.Scenes;
|
||||||
using Code.StateMachine;
|
using Code.StateMachine;
|
||||||
@@ -14,12 +15,13 @@ namespace Code.App.AppStates
|
|||||||
{
|
{
|
||||||
Context.SceneLoaderService.LoadScene((int)SceneIds.MainMenu, SceneLoaded);
|
Context.SceneLoaderService.LoadScene((int)SceneIds.MainMenu, SceneLoaded);
|
||||||
Context.InputService.EnableMap(ActionMappings.MainMenu);
|
Context.InputService.EnableMap(ActionMappings.MainMenu);
|
||||||
|
|
||||||
|
Context.CameraStateMachine.SwitchState(CameraMode.Static);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SceneLoaded()
|
private void SceneLoaded()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
base.EnterState();
|
base.EnterState();
|
||||||
}
|
}
|
||||||
public override void Tick()
|
public override void Tick()
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Code.App.StateMachine;
|
using Code.App.StateMachine;
|
||||||
|
using Code.Gameplay.Camera;
|
||||||
using Code.Input;
|
using Code.Input;
|
||||||
using Code.Scenes;
|
using Code.Scenes;
|
||||||
using Code.StateMachine;
|
using Code.StateMachine;
|
||||||
@@ -16,6 +17,8 @@ namespace Code.App.AppStates
|
|||||||
{
|
{
|
||||||
Context.SceneLoaderService.LoadScene((int)SceneIds.MovementDev, SceneLoaded);
|
Context.SceneLoaderService.LoadScene((int)SceneIds.MovementDev, SceneLoaded);
|
||||||
Context.InputService.EnableMap(ActionMappings.Gameplay);
|
Context.InputService.EnableMap(ActionMappings.Gameplay);
|
||||||
|
|
||||||
|
Context.CameraStateMachine.SwitchState(CameraMode.FirstPerson);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SceneLoaded()
|
private void SceneLoaded()
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using Code.App.StateMachine;
|
using Code.App.StateMachine;
|
||||||
using Code.Configs;
|
using Code.Configs;
|
||||||
|
using Code.Gameplay.Camera;
|
||||||
using Code.Input;
|
using Code.Input;
|
||||||
using Code.Scenes;
|
using Code.Scenes;
|
||||||
using Code.StaticData;
|
using Code.StaticData;
|
||||||
@@ -20,11 +21,25 @@ namespace Code.App
|
|||||||
InstallInfrastructureUnit(containerBuilder, staticDataService);
|
InstallInfrastructureUnit(containerBuilder, staticDataService);
|
||||||
|
|
||||||
containerBuilder.AddSingleton(typeof(InputService), typeof(IInputService));
|
containerBuilder.AddSingleton(typeof(InputService), typeof(IInputService));
|
||||||
|
|
||||||
|
InitializeCamera(containerBuilder, staticDataService);
|
||||||
|
|
||||||
containerBuilder.AddSingleton(typeof(SceneLoaderService), typeof(ISceneLoaderService));
|
containerBuilder.AddSingleton(typeof(SceneLoaderService), typeof(ISceneLoaderService));
|
||||||
|
|
||||||
containerBuilder.OnContainerBuilt += Bootstrap;
|
containerBuilder.OnContainerBuilt += Bootstrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void InitializeCamera(ContainerBuilder containerBuilder, IStaticDataService staticDataService)
|
||||||
|
{
|
||||||
|
// CameraService cameraService = Instantiate(staticDataService.CameraConfig.cameraPrefab);
|
||||||
|
// containerBuilder.AddSingleton(cameraService);
|
||||||
|
// DontDestroyOnLoad(cameraService);
|
||||||
|
|
||||||
|
Camera camera = Instantiate(staticDataService.CameraConfig.cameraPrefab);
|
||||||
|
DontDestroyOnLoad(camera);
|
||||||
|
containerBuilder.AddSingleton(camera);
|
||||||
|
}
|
||||||
|
|
||||||
private void InstallInfrastructureUnit(ContainerBuilder containerBuilder, IStaticDataService staticDataService)
|
private void InstallInfrastructureUnit(ContainerBuilder containerBuilder, IStaticDataService staticDataService)
|
||||||
{
|
{
|
||||||
GameObject infrastructureUnit = Instantiate(staticDataService.AppConfig.infrastructureUnitPrefab);
|
GameObject infrastructureUnit = Instantiate(staticDataService.AppConfig.infrastructureUnitPrefab);
|
||||||
@@ -34,6 +49,7 @@ namespace Code.App
|
|||||||
containerBuilder.AddSingleton(infrastructureUnit.GetComponent<ICoroutineRunner>(),
|
containerBuilder.AddSingleton(infrastructureUnit.GetComponent<ICoroutineRunner>(),
|
||||||
typeof(ICoroutineRunner));
|
typeof(ICoroutineRunner));
|
||||||
containerBuilder.AddSingleton(infrastructureUnit.AddComponent<AppStateMachine>());
|
containerBuilder.AddSingleton(infrastructureUnit.AddComponent<AppStateMachine>());
|
||||||
|
containerBuilder.AddSingleton(infrastructureUnit.AddComponent<CameraStateMachine>());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InstallStaticData(ContainerBuilder containerBuilder, out IStaticDataService staticDataService)
|
private void InstallStaticData(ContainerBuilder containerBuilder, out IStaticDataService staticDataService)
|
||||||
@@ -43,6 +59,7 @@ namespace Code.App
|
|||||||
|
|
||||||
containerBuilder.AddSingleton(staticDataService, typeof(IStaticDataService));
|
containerBuilder.AddSingleton(staticDataService, typeof(IStaticDataService));
|
||||||
containerBuilder.AddSingleton(staticDataService.InputConfig.inputActionAsset, typeof(InputActionAsset));
|
containerBuilder.AddSingleton(staticDataService.InputConfig.inputActionAsset, typeof(InputActionAsset));
|
||||||
|
containerBuilder.AddSingleton(staticDataService.CameraConfig, typeof(CameraConfig));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Bootstrap(Container container)
|
private void Bootstrap(Container container)
|
||||||
@@ -52,6 +69,11 @@ namespace Code.App
|
|||||||
|
|
||||||
AttributeInjector.Inject(appStateMachine.StateMachineContext, container);
|
AttributeInjector.Inject(appStateMachine.StateMachineContext, container);
|
||||||
|
|
||||||
|
CameraStateMachine cameraStateMachine = container.Resolve<CameraStateMachine>();
|
||||||
|
AttributeInjector.Inject(cameraStateMachine.StateMachineContext, container);
|
||||||
|
|
||||||
|
cameraStateMachine.Initialize();
|
||||||
|
|
||||||
// TODO: поменяно для теста
|
// TODO: поменяно для теста
|
||||||
appStateMachine
|
appStateMachine
|
||||||
.SwitchState(AppState.MovementDev);
|
.SwitchState(AppState.MovementDev);
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Code.Gameplay.Camera;
|
||||||
using Code.Input;
|
using Code.Input;
|
||||||
using Code.Scenes;
|
using Code.Scenes;
|
||||||
using Reflex.Attributes;
|
using Reflex.Attributes;
|
||||||
@@ -8,5 +9,7 @@ namespace Code.App.StateMachine
|
|||||||
{
|
{
|
||||||
[Inject] public ISceneLoaderService SceneLoaderService;
|
[Inject] public ISceneLoaderService SceneLoaderService;
|
||||||
[Inject] public IInputService InputService;
|
[Inject] public IInputService InputService;
|
||||||
|
[Inject] public AppStateMachine StateMachine;
|
||||||
|
[Inject] public CameraStateMachine CameraStateMachine;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+6
-7
@@ -1,10 +1,9 @@
|
|||||||
using Code.Gameplay.Character.Core;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Code.Configs
|
namespace Code.Configs
|
||||||
{
|
{
|
||||||
[CreateAssetMenu(fileName = "CharacterCameraConfig", menuName = "Config/CharacterCameraConfig")]
|
[CreateAssetMenu(fileName = "CameraConfig", menuName = "Config/CameraConfig")]
|
||||||
public class CharacterCameraConfig : ScriptableObject
|
public class CameraConfig : ScriptableObject
|
||||||
{
|
{
|
||||||
public float
|
public float
|
||||||
// Расстояния от персонажа до камеры
|
// Расстояния от персонажа до камеры
|
||||||
@@ -29,10 +28,10 @@ namespace Code.Configs
|
|||||||
maxVerticalAngle = 70f, // Максимальный угол наклона камеры (вверх)
|
maxVerticalAngle = 70f, // Максимальный угол наклона камеры (вверх)
|
||||||
defaultVerticalAngle = 10f; // Стандартный угол наклона камеры
|
defaultVerticalAngle = 10f; // Стандартный угол наклона камеры
|
||||||
|
|
||||||
// Текущий режим камеры
|
// Позиция следования по умолчанию
|
||||||
public CameraMode defaultCameraMode = CameraMode.MainMenu;
|
|
||||||
|
|
||||||
// Позиция следования по умолчанию (для меню)
|
|
||||||
public Vector3 defaultFollowPosition = Vector3.zero;
|
public Vector3 defaultFollowPosition = Vector3.zero;
|
||||||
|
|
||||||
|
// Префаб камеры
|
||||||
|
public Camera cameraPrefab;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File renamed without changes.
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0fae52abe6b44ad5bdd6e67876fe940a
|
||||||
|
timeCreated: 1761671702
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
namespace Code.Gameplay.Character.Core
|
namespace Code.Gameplay.Camera
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Перечисление режимов работы камеры
|
* Перечисление режимов работы камеры
|
||||||
@@ -10,7 +10,7 @@ namespace Code.Gameplay.Character.Core
|
|||||||
*/
|
*/
|
||||||
public enum CameraMode
|
public enum CameraMode
|
||||||
{
|
{
|
||||||
MainMenu,
|
Bogdan,
|
||||||
Static,
|
Static,
|
||||||
FirstPerson,
|
FirstPerson,
|
||||||
ThirdPerson,
|
ThirdPerson,
|
||||||
File renamed without changes.
@@ -0,0 +1,23 @@
|
|||||||
|
using Code.Configs;
|
||||||
|
using Code.Gameplay.Camera.CameraStates;
|
||||||
|
using Code.StateMachine;
|
||||||
|
|
||||||
|
namespace Code.Gameplay.Camera
|
||||||
|
{
|
||||||
|
public class CameraStateMachine : AbstractStateMachine<CameraMode, CameraStateMachineContext>
|
||||||
|
{
|
||||||
|
// Текущий режим работы камеры
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
States.Add(CameraMode.Static, new StaticState(StateMachineContext));
|
||||||
|
States.Add(CameraMode.FirstPerson, new FirstPersonState(StateMachineContext));
|
||||||
|
States.Add(CameraMode.ThirdPerson, new ThirdPersonState(StateMachineContext));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected override bool CheckTransitionAllowed(CameraMode nextState) => true;
|
||||||
|
|
||||||
|
protected override void ResetAllowedTransitions()
|
||||||
|
{ }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b220b02510c34ea08257cc951d949fd7
|
||||||
|
timeCreated: 1761671720
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
using Code.Configs;
|
||||||
|
using Code.Input;
|
||||||
|
using Reflex.Attributes;
|
||||||
|
|
||||||
|
namespace Code.Gameplay.Camera
|
||||||
|
{
|
||||||
|
public class CameraStateMachineContext
|
||||||
|
{
|
||||||
|
[Inject] public UnityEngine.Camera Camera;
|
||||||
|
[Inject] public CameraConfig Config;
|
||||||
|
[Inject] public IInputService InputService;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4f18a74bdb8947bebec56115659e5af3
|
||||||
|
timeCreated: 1761671752
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d7399e433dff42a185f62d79b546b059
|
||||||
|
timeCreated: 1761671908
|
||||||
@@ -0,0 +1,151 @@
|
|||||||
|
using Code.Configs;
|
||||||
|
using Code.Input;
|
||||||
|
using Code.StateMachine;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Code.Gameplay.Camera.CameraStates
|
||||||
|
{
|
||||||
|
public abstract class BaseCameraState : BaseState<CameraStateMachineContext>
|
||||||
|
{
|
||||||
|
// DI сервиса ввода
|
||||||
|
private readonly IInputService _inputService;
|
||||||
|
|
||||||
|
// Конфиг камеры
|
||||||
|
private readonly CameraConfig _config;
|
||||||
|
|
||||||
|
// Используемая камера
|
||||||
|
protected UnityEngine.Camera Camera { get; private set; }
|
||||||
|
|
||||||
|
// Трансформ объекта, за которым следует камера
|
||||||
|
protected Transform FollowTransform;
|
||||||
|
|
||||||
|
// Позиция следования: текущая сглаженная позиция и горизонтальное направление камеры
|
||||||
|
protected Vector3 CurrentFollowPosition;
|
||||||
|
|
||||||
|
// Fallback-позиция для режимов без цели
|
||||||
|
private Vector3 _defaultFollowPosition;
|
||||||
|
|
||||||
|
// Целевой вертикальный угол камеры (наклон вверх/вниз)
|
||||||
|
private float _targetVerticalAngle;
|
||||||
|
|
||||||
|
// Текущая и целевая дистанция камеры от цели
|
||||||
|
protected float CurrentDistance, TargetDistance;
|
||||||
|
|
||||||
|
// Исходные значения дистанции для восстановления
|
||||||
|
protected float OriginalDefaultDistance, OriginalMinDistance, OriginalMaxDistance;
|
||||||
|
|
||||||
|
// Горизонтальное направление камеры (проекция forward на плоскость)
|
||||||
|
private Vector3 PlanarDirection { get; set; }
|
||||||
|
|
||||||
|
// Параметры загружаются из CameraConfig
|
||||||
|
protected float
|
||||||
|
DefaultDistance,
|
||||||
|
MinDistance,
|
||||||
|
MaxDistance,
|
||||||
|
DistanceMovementSpeed,
|
||||||
|
RotationSpeed,
|
||||||
|
RotationSharpness,
|
||||||
|
FollowSharpness,
|
||||||
|
MinVerticalAngle,
|
||||||
|
MaxVerticalAngle,
|
||||||
|
DefaultVerticalAngle;
|
||||||
|
|
||||||
|
// Свойства для доступа к важным данным камеры извне
|
||||||
|
public Vector3 GetPlanarDirection() => PlanarDirection; // Горизонтальное направление камеры
|
||||||
|
public Quaternion GetCameraRotation() => Camera.transform.rotation; // Текущее вращение камеры
|
||||||
|
|
||||||
|
// Конструктор базового состояния
|
||||||
|
protected BaseCameraState(CameraStateMachineContext context) : base(context)
|
||||||
|
{
|
||||||
|
_inputService = context.InputService;
|
||||||
|
_config = context.Config;
|
||||||
|
LoadConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Загрузка конфига для камеры
|
||||||
|
private void LoadConfig()
|
||||||
|
{
|
||||||
|
// Загрузка значений из конфигов
|
||||||
|
DefaultDistance = _config.defaultDistance;
|
||||||
|
MinDistance = _config.minDistance;
|
||||||
|
MaxDistance = _config.maxDistance;
|
||||||
|
DistanceMovementSpeed = _config.distanceMovementSpeed;
|
||||||
|
RotationSpeed = _config.rotationSpeed;
|
||||||
|
RotationSharpness = _config.rotationSharpness;
|
||||||
|
FollowSharpness = _config.followSharpness;
|
||||||
|
MinVerticalAngle = _config.minVerticalAngle;
|
||||||
|
MaxVerticalAngle = _config.maxVerticalAngle;
|
||||||
|
DefaultVerticalAngle = _config.defaultVerticalAngle;
|
||||||
|
_defaultFollowPosition = _config.defaultFollowPosition;
|
||||||
|
|
||||||
|
// Обеспечиваем корректные значения дистанции и угла
|
||||||
|
DefaultDistance = Mathf.Clamp(DefaultDistance, MinDistance, MaxDistance);
|
||||||
|
DefaultVerticalAngle = Mathf.Clamp(DefaultVerticalAngle, MinVerticalAngle, MaxVerticalAngle);
|
||||||
|
|
||||||
|
// Сохраняем оригинальные значения для восстановления
|
||||||
|
OriginalDefaultDistance = DefaultDistance;
|
||||||
|
OriginalMinDistance = MinDistance;
|
||||||
|
OriginalMaxDistance = MaxDistance;
|
||||||
|
|
||||||
|
CurrentDistance = DefaultDistance;
|
||||||
|
TargetDistance = CurrentDistance;
|
||||||
|
_targetVerticalAngle = DefaultVerticalAngle;
|
||||||
|
PlanarDirection = Vector3.forward; // Начальное направление - вперед по оси Z
|
||||||
|
CurrentFollowPosition = _defaultFollowPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Переход в состояние
|
||||||
|
public override void EnterState()
|
||||||
|
{
|
||||||
|
Camera = Context.Camera;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void LateTick()
|
||||||
|
{
|
||||||
|
// Обновляем камеру только если есть цель для следования
|
||||||
|
if (FollowTransform)
|
||||||
|
{
|
||||||
|
UpdateWithInput(Time.deltaTime, _inputService.ZoomInput, _inputService.LookInput);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Абстрактные методы для специфики режима
|
||||||
|
protected abstract void HandlePosition(float deltaTime, float zoomInput, Quaternion targetRotation);
|
||||||
|
|
||||||
|
// Обработка вращения камеры на основе пользовательского ввода
|
||||||
|
protected void HandleRotationInput(float deltaTime, Vector3 rotationInput, out Quaternion targetRotation)
|
||||||
|
{
|
||||||
|
// Вращение вокруг вертикальной оси (горизонтальный поворот)
|
||||||
|
var rotationFromInput = Quaternion.Euler(FollowTransform.up * (rotationInput.x * RotationSpeed));
|
||||||
|
PlanarDirection = rotationFromInput * PlanarDirection;
|
||||||
|
var planarRotation = Quaternion.LookRotation(PlanarDirection, FollowTransform.up);
|
||||||
|
|
||||||
|
// Вращение вокруг горизонтальной оси (вертикальный наклон)
|
||||||
|
_targetVerticalAngle -= rotationInput.y * RotationSpeed;
|
||||||
|
_targetVerticalAngle = Mathf.Clamp(_targetVerticalAngle, MinVerticalAngle, MaxVerticalAngle);
|
||||||
|
var verticalRotation = Quaternion.Euler(_targetVerticalAngle, 0, 0);
|
||||||
|
|
||||||
|
// Интерполяция к целевому вращению для плавности
|
||||||
|
targetRotation = Quaternion.Slerp(Camera.transform.rotation, planarRotation * verticalRotation, deltaTime * RotationSharpness);
|
||||||
|
|
||||||
|
// Применение финального вращения
|
||||||
|
Camera.transform.rotation = targetRotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Основной метод обновления камеры, вызываемый извне каждый кадр
|
||||||
|
private void UpdateWithInput(float deltaTime, float zoomInput, Vector3 rotationInput)
|
||||||
|
{
|
||||||
|
// Обработка ввода и позиционирования
|
||||||
|
HandleRotationInput(deltaTime, rotationInput, out var targetRotation);
|
||||||
|
HandlePosition(deltaTime, zoomInput, targetRotation);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Установка цели для следования камеры
|
||||||
|
public void SetFollowTransform(Transform t)
|
||||||
|
{
|
||||||
|
FollowTransform = t;
|
||||||
|
CurrentFollowPosition = t ? t.position : _defaultFollowPosition;
|
||||||
|
if (t) PlanarDirection = t.forward; // Начальное направление совпадает с направлением цели
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 92ff312b40a647b392af24877e699bd5
|
||||||
|
timeCreated: 1761685916
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Code.Gameplay.Camera.CameraStates
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Состояние камеры от первого лица
|
||||||
|
* Камера размещается непосредственно на позиции цели (например, на уровне глаз персонажа)
|
||||||
|
* Дистанция до цели принудительно устанавливается в 0
|
||||||
|
* Вращение управляется мышью, позиция следует за целью без отступа
|
||||||
|
*/
|
||||||
|
public class FirstPersonState : BaseCameraState, ICameraState
|
||||||
|
{
|
||||||
|
public FirstPersonState(CameraStateMachineContext context) : base(context) { }
|
||||||
|
|
||||||
|
public override void EnterState()
|
||||||
|
{
|
||||||
|
// В FirstPerson режиме дистанция всегда равна 0
|
||||||
|
MinDistance = 0f;
|
||||||
|
MaxDistance = 0f;
|
||||||
|
DefaultDistance = 0f;
|
||||||
|
TargetDistance = 0f;
|
||||||
|
CurrentDistance = 0f;
|
||||||
|
|
||||||
|
base.EnterState();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void HandlePosition(float deltaTime, float zoomInput, Quaternion targetRotation)
|
||||||
|
{
|
||||||
|
// Плавное следование за целью с использованием экспоненциального сглаживания
|
||||||
|
CurrentFollowPosition = Vector3.Lerp(CurrentFollowPosition, FollowTransform.position, 1f - Mathf.Exp(-FollowSharpness * deltaTime));
|
||||||
|
|
||||||
|
// В FirstPerson режиме камера находится прямо на позиции цели
|
||||||
|
var targetPosition = CurrentFollowPosition;
|
||||||
|
|
||||||
|
// Установка финальной позиции камеры
|
||||||
|
Camera.transform.position = targetPosition;
|
||||||
|
}
|
||||||
|
public CameraMode GetCameraMode()
|
||||||
|
{
|
||||||
|
return CameraMode.FirstPerson;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8bd4b9c56b1e435d8699160bc950994c
|
||||||
|
timeCreated: 1761672032
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
namespace Code.Gameplay.Camera.CameraStates
|
||||||
|
{
|
||||||
|
public interface ICameraState
|
||||||
|
{
|
||||||
|
CameraMode GetCameraMode();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4f25670e547242e8a91e19894cf6889c
|
||||||
|
timeCreated: 1761687204
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Code.Gameplay.Camera.CameraStates
|
||||||
|
{
|
||||||
|
public class StaticState : BaseCameraState, ICameraState
|
||||||
|
{
|
||||||
|
private Transform _target;
|
||||||
|
private Transform _position;
|
||||||
|
public StaticState(CameraStateMachineContext context) : base(context) { }
|
||||||
|
|
||||||
|
public override void EnterState()
|
||||||
|
{
|
||||||
|
Debug.Log("Static State Enter");
|
||||||
|
base.EnterState();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void HandlePosition(float deltaTime, float zoomInput, Quaternion targetRotation)
|
||||||
|
{
|
||||||
|
throw new System.NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public CameraMode GetCameraMode()
|
||||||
|
{
|
||||||
|
return CameraMode.Static;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ddbcc6a073b744a08ce31c0607c1e9e9
|
||||||
|
timeCreated: 1761671944
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Code.Gameplay.Camera.CameraStates
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Состояние камеры от третьего лица
|
||||||
|
* Камера следует за персонажем на заданном расстоянии
|
||||||
|
* Поддерживает зум, плавное следование и вращение с учётом угла наклона
|
||||||
|
* Дистанция и углы настраиваются через конфигурацию
|
||||||
|
*/
|
||||||
|
public class ThirdPersonState : BaseCameraState, ICameraState
|
||||||
|
{
|
||||||
|
public ThirdPersonState(CameraStateMachineContext context) : base(context) { }
|
||||||
|
|
||||||
|
public override void EnterState()
|
||||||
|
{
|
||||||
|
// Восстанавливаем исходные значения дистанции
|
||||||
|
MinDistance = OriginalMinDistance;
|
||||||
|
MaxDistance = OriginalMaxDistance;
|
||||||
|
DefaultDistance = OriginalDefaultDistance;
|
||||||
|
TargetDistance = DefaultDistance;
|
||||||
|
|
||||||
|
base.EnterState();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void HandlePosition(float deltaTime, float zoomInput, Quaternion targetRotation)
|
||||||
|
{
|
||||||
|
// Обновление целевой дистанции на основе ввода зума
|
||||||
|
TargetDistance += zoomInput * DistanceMovementSpeed;
|
||||||
|
TargetDistance = Mathf.Clamp(TargetDistance, MinDistance, MaxDistance);
|
||||||
|
|
||||||
|
// Плавное следование за целью с использованием экспоненциального сглаживания
|
||||||
|
CurrentFollowPosition = Vector3.Lerp(
|
||||||
|
CurrentFollowPosition,
|
||||||
|
FollowTransform.position,
|
||||||
|
1f - Mathf.Exp(-FollowSharpness * deltaTime)
|
||||||
|
);
|
||||||
|
|
||||||
|
// В ThirdPerson режиме камера отодвинута на расстояние от цели
|
||||||
|
var targetPosition = CurrentFollowPosition - targetRotation * Vector3.forward * CurrentDistance;
|
||||||
|
|
||||||
|
// Плавное изменение текущей дистанции к целевой
|
||||||
|
CurrentDistance = Mathf.Lerp(
|
||||||
|
CurrentDistance,
|
||||||
|
TargetDistance,
|
||||||
|
1f - Mathf.Exp(-DistanceMovementSpeed * deltaTime)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Установка финальной позиции камеры
|
||||||
|
Camera.transform.position = targetPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CameraMode GetCameraMode()
|
||||||
|
{
|
||||||
|
return CameraMode.ThirdPerson;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ec6778ceb9854ff8af7cba4f6285c370
|
||||||
|
timeCreated: 1761672071
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b36ec6a31fb74d608232394fd5df657c
|
|
||||||
timeCreated: 1761570832
|
|
||||||
@@ -1,215 +0,0 @@
|
|||||||
using System;
|
|
||||||
using Code.Gameplay.Character.Core;
|
|
||||||
using Code.StaticData;
|
|
||||||
using Reflex.Attributes;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace Code.Gameplay.Character.Camera
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Скрипт, отвечающий за поведение камеры при передвижении
|
|
||||||
* Поддерживает как 3rd-person, так и 1st-person режимы камеры
|
|
||||||
* Реализует плавное следование за персонажем, вращение и зум камеры
|
|
||||||
*
|
|
||||||
* Источник: Tvtig, https://www.youtube.com/watch?v=9ibpY64wBYM
|
|
||||||
*/
|
|
||||||
public class CharacterCamera : MonoBehaviour
|
|
||||||
{
|
|
||||||
// Параметры загружаются из CharacterCameraConfig
|
|
||||||
private float
|
|
||||||
_defaultDistance,
|
|
||||||
_minDistance,
|
|
||||||
_maxDistance,
|
|
||||||
_distanceMovementSpeed,
|
|
||||||
_rotationSpeed,
|
|
||||||
_rotationSharpness,
|
|
||||||
_followSharpness,
|
|
||||||
_minVerticalAngle,
|
|
||||||
_maxVerticalAngle,
|
|
||||||
_defaultVerticalAngle;
|
|
||||||
|
|
||||||
// Трансформ объекта, за которым следует камера (для 1st-person: уровень глаз)
|
|
||||||
private Transform _followTransform;
|
|
||||||
|
|
||||||
// Позиция следования: текущая сглаженная позиция и горизонтальное направление камеры
|
|
||||||
private Vector3 _currentFollowPosition;
|
|
||||||
|
|
||||||
// Fallback-позиция для режимов без цели (например, MainMenu)
|
|
||||||
private Vector3 _defaultFollowPosition;
|
|
||||||
|
|
||||||
// Целевой вертикальный угол камеры (наклон вверх/вниз)
|
|
||||||
private float _targetVerticalAngle;
|
|
||||||
|
|
||||||
// Текущая и целевая дистанция камеры от цели
|
|
||||||
private float _currentDistance, _targetDistance;
|
|
||||||
|
|
||||||
// Исходные значения дистанции для восстановления после FirstPerson режима
|
|
||||||
private float _originalDefaultDistance, _originalMinDistance, _originalMaxDistance;
|
|
||||||
|
|
||||||
// Горизонтальное направление камеры (проекция forward на плоскость)
|
|
||||||
public Vector3 PlanarDirection { get; private set; }
|
|
||||||
|
|
||||||
// Текущий режим работы камеры
|
|
||||||
public CameraMode CurrentMode { get; private set; }
|
|
||||||
|
|
||||||
// DI для загрузки конфига
|
|
||||||
[Inject] private IStaticDataService _staticDataService;
|
|
||||||
|
|
||||||
// Загрузка конфига для камеры
|
|
||||||
private void LoadConfig()
|
|
||||||
{
|
|
||||||
// Загрузка значений из конфигов
|
|
||||||
var config = _staticDataService.CharacterCameraConfig;
|
|
||||||
|
|
||||||
_defaultDistance = config.defaultDistance;
|
|
||||||
_minDistance = config.minDistance;
|
|
||||||
_maxDistance = config.maxDistance;
|
|
||||||
_distanceMovementSpeed = config.distanceMovementSpeed;
|
|
||||||
_rotationSpeed = config.rotationSpeed;
|
|
||||||
_rotationSharpness = config.rotationSharpness;
|
|
||||||
_followSharpness = config.followSharpness;
|
|
||||||
_minVerticalAngle = config.minVerticalAngle;
|
|
||||||
_maxVerticalAngle = config.maxVerticalAngle;
|
|
||||||
_defaultVerticalAngle = config.defaultVerticalAngle;
|
|
||||||
CurrentMode = config.defaultCameraMode;
|
|
||||||
_defaultFollowPosition = config.defaultFollowPosition;
|
|
||||||
|
|
||||||
// Валидация значений (на случай ручного редактирования конфига)
|
|
||||||
_defaultDistance = Mathf.Clamp(_defaultDistance, _minDistance, _maxDistance);
|
|
||||||
_defaultVerticalAngle = Mathf.Clamp(_defaultVerticalAngle, _minVerticalAngle, _maxVerticalAngle);
|
|
||||||
|
|
||||||
// Сохраняем оригинальные значения для восстановления
|
|
||||||
_originalDefaultDistance = _defaultDistance;
|
|
||||||
_originalMinDistance = _minDistance;
|
|
||||||
_originalMaxDistance = _maxDistance;
|
|
||||||
|
|
||||||
// Инициализация состояния камеры
|
|
||||||
_currentDistance = _defaultDistance;
|
|
||||||
_targetDistance = _currentDistance;
|
|
||||||
_targetVerticalAngle = _defaultVerticalAngle;
|
|
||||||
PlanarDirection = Vector3.forward; // Начальное направление - вперед по оси Z
|
|
||||||
_currentFollowPosition = _defaultFollowPosition;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Инициализация камеры при создании
|
|
||||||
private void Awake()
|
|
||||||
{
|
|
||||||
LoadConfig();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Установка цели для следования камеры
|
|
||||||
public void SetFollowTransform(Transform t)
|
|
||||||
{
|
|
||||||
_followTransform = t;
|
|
||||||
_currentFollowPosition = t.position;
|
|
||||||
PlanarDirection = t.forward; // Начальное направление совпадает с направлением цели
|
|
||||||
}
|
|
||||||
|
|
||||||
// Обработка вращения камеры на основе пользовательского ввода
|
|
||||||
private void HandleRotationInput(float deltaTime, Vector3 rotationInput, out Quaternion targetRotation)
|
|
||||||
{
|
|
||||||
// Вращение вокруг вертикальной оси (горизонтальный поворот)
|
|
||||||
var rotationFromInput = Quaternion.Euler(_followTransform.up * (rotationInput.x * _rotationSpeed));
|
|
||||||
PlanarDirection = rotationFromInput * PlanarDirection;
|
|
||||||
var planarRotation = Quaternion.LookRotation(PlanarDirection, _followTransform.up);
|
|
||||||
|
|
||||||
// Вращение вокруг горизонтальной оси (вертикальный наклон)
|
|
||||||
_targetVerticalAngle -= rotationInput.y * _rotationSpeed;
|
|
||||||
_targetVerticalAngle = Math.Clamp(_targetVerticalAngle, _minVerticalAngle, _maxVerticalAngle);
|
|
||||||
var verticalRotation = Quaternion.Euler(_targetVerticalAngle, 0, 0);
|
|
||||||
|
|
||||||
// Интерполяция к целевому вращению для плавности
|
|
||||||
targetRotation = Quaternion.Slerp(transform.rotation, planarRotation * verticalRotation, deltaTime * _rotationSharpness);
|
|
||||||
|
|
||||||
// Применение финального вращения
|
|
||||||
transform.rotation = targetRotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Обработка позиционирования камеры и зума с учетом текущего режима
|
|
||||||
private void HandlePosition(float deltaTime, float zoomInput, Quaternion targetRotation)
|
|
||||||
{
|
|
||||||
// В FirstPerson режиме зум отключается
|
|
||||||
if (CurrentMode != CameraMode.FirstPerson)
|
|
||||||
{
|
|
||||||
// Обновление целевой дистанции на основе ввода зума
|
|
||||||
_targetDistance += zoomInput * _distanceMovementSpeed;
|
|
||||||
_targetDistance = Mathf.Clamp(_targetDistance, _minDistance, _maxDistance);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Плавное следование за целью с использованием экспоненциального сглаживания
|
|
||||||
_currentFollowPosition = Vector3.Lerp(_currentFollowPosition, _followTransform.position, 1f - Mathf.Exp(-_followSharpness * deltaTime));
|
|
||||||
|
|
||||||
// Вычисление целевой позиции камеры с учетом текущего режима
|
|
||||||
Vector3 targetPosition;
|
|
||||||
if (CurrentMode == CameraMode.FirstPerson)
|
|
||||||
{
|
|
||||||
// В FirstPerson режиме камера находится прямо на позиции цели
|
|
||||||
targetPosition = _currentFollowPosition;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// В ThirdPerson режиме камера отодвинута на расстояние от цели
|
|
||||||
targetPosition = _currentFollowPosition - targetRotation * Vector3.forward * _currentDistance;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Плавное изменение текущей дистанции к целевой (только для ThirdPerson)
|
|
||||||
if (CurrentMode != CameraMode.FirstPerson)
|
|
||||||
{
|
|
||||||
_currentDistance = Mathf.Lerp(_currentDistance, _targetDistance, 1f - Mathf.Exp(-_distanceMovementSpeed * deltaTime));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Установка финальной позиции камеры
|
|
||||||
transform.position = targetPosition;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Основной метод обновления камеры, вызываемый извне каждый кадр
|
|
||||||
public void UpdateWithInput(float deltaTime, float zoomInput, Vector3 rotationInput)
|
|
||||||
{
|
|
||||||
// Проверка наличия цели для следования и проверка на режим главного меню
|
|
||||||
if (!_followTransform || CurrentMode == CameraMode.MainMenu) return;
|
|
||||||
|
|
||||||
// Обработка ввода и позиционирования
|
|
||||||
HandleRotationInput(deltaTime, rotationInput, out var targetRotation);
|
|
||||||
HandlePosition(deltaTime, zoomInput, targetRotation);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Смена режима камеры
|
|
||||||
public void SetCameraMode(CameraMode newMode)
|
|
||||||
{
|
|
||||||
if (CurrentMode == newMode) return;
|
|
||||||
CurrentMode = newMode;
|
|
||||||
|
|
||||||
// Применяем настройки специфичные для режима
|
|
||||||
ApplyModeSpecificSettings();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Применение настроек специфичных для текущего режима
|
|
||||||
private void ApplyModeSpecificSettings()
|
|
||||||
{
|
|
||||||
switch (CurrentMode)
|
|
||||||
{
|
|
||||||
case CameraMode.FirstPerson:
|
|
||||||
// В FirstPerson режиме дистанция всегда равна 0
|
|
||||||
_minDistance = 0f;
|
|
||||||
_maxDistance = 0f;
|
|
||||||
_defaultDistance = 0f;
|
|
||||||
_targetDistance = 0f;
|
|
||||||
_currentDistance = 0f;
|
|
||||||
break;
|
|
||||||
case CameraMode.ThirdPerson:
|
|
||||||
// Восстанавливаем исходные значения дистанции
|
|
||||||
_minDistance = _originalMinDistance;
|
|
||||||
_maxDistance = _originalMaxDistance;
|
|
||||||
_defaultDistance = _originalDefaultDistance;
|
|
||||||
_targetDistance = _defaultDistance;
|
|
||||||
break;
|
|
||||||
// Заготовка на будущее (если понадобится)
|
|
||||||
case CameraMode.MainMenu:
|
|
||||||
case CameraMode.Static:
|
|
||||||
case CameraMode.Cinematic:
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: f1d98e6c5419411098391c07861e627e
|
|
||||||
timeCreated: 1760627986
|
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Code.Gameplay.Camera;
|
||||||
using KinematicCharacterController;
|
using KinematicCharacterController;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using Code.Gameplay.Character.Core;
|
using Code.Gameplay.Character.Core;
|
||||||
|
|||||||
+3
-2
@@ -1,3 +1,4 @@
|
|||||||
|
using Code.Gameplay.Camera;
|
||||||
using Code.Gameplay.Character.Controller.Abilities;
|
using Code.Gameplay.Character.Controller.Abilities;
|
||||||
using Code.Gameplay.Character.Controller.Input;
|
using Code.Gameplay.Character.Controller.Input;
|
||||||
using Code.Gameplay.Character.Controller.Movement;
|
using Code.Gameplay.Character.Controller.Movement;
|
||||||
@@ -53,7 +54,7 @@ namespace Code.Gameplay.Character.Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Текущий режим камеры для адаптации поведения
|
// Текущий режим камеры для адаптации поведения
|
||||||
private CameraMode _currentCameraMode = CameraMode.ThirdPerson;
|
private CameraMode _currentCameraMode = CameraMode.FirstPerson;
|
||||||
|
|
||||||
// Инициализация контроллера
|
// Инициализация контроллера
|
||||||
private void Start()
|
private void Start()
|
||||||
@@ -127,7 +128,7 @@ namespace Code.Gameplay.Character.Controller
|
|||||||
// Заготовка на будущее (если понадобится)
|
// Заготовка на будущее (если понадобится)
|
||||||
case CameraMode.Static:
|
case CameraMode.Static:
|
||||||
case CameraMode.Cinematic:
|
case CameraMode.Cinematic:
|
||||||
case CameraMode.MainMenu: // Скорее всего юзлес, но пускай будет
|
case CameraMode.Bogdan: // Скорее всего юзлес, но пускай будет
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -1,3 +1,4 @@
|
|||||||
|
using Code.Gameplay.Camera;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using Code.Gameplay.Character.Core;
|
using Code.Gameplay.Character.Core;
|
||||||
using KinematicCharacterController;
|
using KinematicCharacterController;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Code.Gameplay.Character.Camera;
|
using Code.Gameplay.Camera;
|
||||||
|
using Code.Gameplay.Camera.CameraStates;
|
||||||
using Code.Gameplay.Character.Controller;
|
using Code.Gameplay.Character.Controller;
|
||||||
using Code.Input;
|
using Code.Input;
|
||||||
using Reflex.Attributes;
|
using Reflex.Attributes;
|
||||||
@@ -14,7 +15,7 @@ namespace Code.Gameplay.Character.Core
|
|||||||
*/
|
*/
|
||||||
public class Character : MonoBehaviour
|
public class Character : MonoBehaviour
|
||||||
{
|
{
|
||||||
[SerializeField] private CharacterCamera characterCamera; // Компонент камеры персонажа
|
[Inject] private CameraStateMachine _cameraStateMachine; // Стейт-машина камеры (нужна для транзакций и т.п.)
|
||||||
[SerializeField] private CustomCharacterController customCharacterController; // Компонент управления персонажем
|
[SerializeField] private CustomCharacterController customCharacterController; // Компонент управления персонажем
|
||||||
[SerializeField] private Transform cameraFollowPoint; // Точка следования камеры (уровень глаз для FirstPerson)
|
[SerializeField] private Transform cameraFollowPoint; // Точка следования камеры (уровень глаз для FirstPerson)
|
||||||
|
|
||||||
@@ -27,25 +28,12 @@ namespace Code.Gameplay.Character.Core
|
|||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
// Настройка камеры для следования за точкой камеры
|
// Настройка камеры для следования за точкой камеры
|
||||||
characterCamera.SetFollowTransform(cameraFollowPoint);
|
((BaseCameraState)_cameraStateMachine.CurrentBaseState).SetFollowTransform(cameraFollowPoint);
|
||||||
characterCamera.SetCameraMode(CameraMode.FirstPerson);
|
|
||||||
|
|
||||||
// Включение Gameplay мапа ввода
|
// Включение Gameplay мапа ввода
|
||||||
_inputService.EnableMap(ActionMappings.Gameplay);
|
_inputService.EnableMap(ActionMappings.Gameplay);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Обработка ввода для камеры (вращение и зум)
|
|
||||||
private void HandleCameraInput()
|
|
||||||
{
|
|
||||||
// Получаем данные ввода из Input System
|
|
||||||
var lookInput = _inputService.LookInput;
|
|
||||||
var scrollInput = _inputService.ZoomInput;
|
|
||||||
|
|
||||||
// Передаем данные в камеру
|
|
||||||
characterCamera.UpdateWithInput(Time.deltaTime, scrollInput,
|
|
||||||
new Vector3(lookInput.x, lookInput.y, 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Обработка ввода для движения персонажа
|
// Обработка ввода для движения персонажа
|
||||||
private void HandleCharacterInput()
|
private void HandleCharacterInput()
|
||||||
{
|
{
|
||||||
@@ -59,11 +47,11 @@ namespace Code.Gameplay.Character.Core
|
|||||||
inputs.JumpPressed = _inputService.JumpPressed; // Прыжки (Space)
|
inputs.JumpPressed = _inputService.JumpPressed; // Прыжки (Space)
|
||||||
inputs.SprintPressed = _inputService.SprintPressed; // Спринт (Shift)
|
inputs.SprintPressed = _inputService.SprintPressed; // Спринт (Shift)
|
||||||
inputs.SlidePressed = _inputService.SlidePressed; // Слайд (Ctrl)
|
inputs.SlidePressed = _inputService.SlidePressed; // Слайд (Ctrl)
|
||||||
|
inputs.CameraMode = ((ICameraState)_cameraStateMachine.CurrentBaseState).GetCameraMode();
|
||||||
|
|
||||||
// Передаем информацию о камере для адаптивного поведения
|
// Передаем информацию о камере для адаптивного поведения
|
||||||
inputs.CameraRotation = characterCamera.transform.rotation;
|
inputs.CameraRotation = ((BaseCameraState)_cameraStateMachine.CurrentBaseState).GetCameraRotation();
|
||||||
inputs.CameraMode = characterCamera.CurrentMode;
|
inputs.CameraPlanarDirection = ((BaseCameraState)_cameraStateMachine.CurrentBaseState).GetPlanarDirection();
|
||||||
inputs.CameraPlanarDirection = characterCamera.PlanarDirection;
|
|
||||||
|
|
||||||
// Передаем ввод в контроллер персонажа
|
// Передаем ввод в контроллер персонажа
|
||||||
customCharacterController.SetInputs(ref inputs);
|
customCharacterController.SetInputs(ref inputs);
|
||||||
@@ -92,12 +80,14 @@ namespace Code.Gameplay.Character.Core
|
|||||||
// Метод для переключения режимов камеры
|
// Метод для переключения режимов камеры
|
||||||
private void ToggleCameraMode()
|
private void ToggleCameraMode()
|
||||||
{
|
{
|
||||||
var currentMode = characterCamera.CurrentMode;
|
var currentMode = ((ICameraState)_cameraStateMachine.CurrentBaseState).GetCameraMode();
|
||||||
var newMode = currentMode == CameraMode.FirstPerson ? CameraMode.ThirdPerson : CameraMode.FirstPerson;
|
var newMode = currentMode == CameraMode.FirstPerson ? CameraMode.ThirdPerson : CameraMode.FirstPerson;
|
||||||
|
|
||||||
characterCamera.SetCameraMode(newMode);
|
_cameraStateMachine.SwitchState(newMode);
|
||||||
|
((BaseCameraState)_cameraStateMachine.CurrentBaseState).SetFollowTransform(cameraFollowPoint);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Обновление логики каждый кадр
|
// Обновление логики каждый кадр
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
@@ -107,12 +97,5 @@ namespace Code.Gameplay.Character.Core
|
|||||||
// Обработка переключения режима камеры
|
// Обработка переключения режима камеры
|
||||||
HandleCameraModeInput();
|
HandleCameraModeInput();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Обновление после всех вычислений (идеально для камеры)
|
|
||||||
private void LateUpdate()
|
|
||||||
{
|
|
||||||
// Обработка ввода для камеры в LateUpdate (после движения персонажа)
|
|
||||||
HandleCameraInput();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Code.Gameplay.Camera;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Code.Gameplay.Character.Core
|
namespace Code.Gameplay.Character.Core
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@@ -7,6 +8,7 @@ namespace Code.StateMachine
|
|||||||
: MonoBehaviour
|
: MonoBehaviour
|
||||||
where TStateMachineContext : new()
|
where TStateMachineContext : new()
|
||||||
{
|
{
|
||||||
|
public TStateEnum CurrentState { get; private set; }
|
||||||
public BaseState<TStateMachineContext> CurrentBaseState { get; private set; }
|
public BaseState<TStateMachineContext> CurrentBaseState { get; private set; }
|
||||||
private BaseState<TStateMachineContext> _previousBaseState;
|
private BaseState<TStateMachineContext> _previousBaseState;
|
||||||
|
|
||||||
@@ -20,6 +22,10 @@ namespace Code.StateMachine
|
|||||||
CurrentBaseState.Tick();
|
CurrentBaseState.Tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void LateUpdate()
|
||||||
|
{
|
||||||
|
CurrentBaseState.LateTick();
|
||||||
|
}
|
||||||
public abstract void Initialize();
|
public abstract void Initialize();
|
||||||
|
|
||||||
// Костыли 2 шт. для флагового енама в шаблонах
|
// Костыли 2 шт. для флагового енама в шаблонах
|
||||||
@@ -53,6 +59,8 @@ namespace Code.StateMachine
|
|||||||
CurrentBaseState.EnterState();
|
CurrentBaseState.EnterState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CurrentState = nextState;
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ namespace Code.StateMachine
|
|||||||
public virtual void EnterState() => OnEntered?.Invoke();
|
public virtual void EnterState() => OnEntered?.Invoke();
|
||||||
|
|
||||||
public virtual void Tick(){}
|
public virtual void Tick(){}
|
||||||
|
public virtual void LateTick(){}
|
||||||
|
|
||||||
public virtual void ExitState() => OnExited?.Invoke();
|
public virtual void ExitState() => OnExited?.Invoke();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,6 @@ namespace Code.StaticData
|
|||||||
void Load();
|
void Load();
|
||||||
InputConfig InputConfig { get; }
|
InputConfig InputConfig { get; }
|
||||||
AppConfig AppConfig { get; }
|
AppConfig AppConfig { get; }
|
||||||
CharacterCameraConfig CharacterCameraConfig { get; }
|
CameraConfig CameraConfig { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8,13 +8,13 @@ namespace Code.StaticData
|
|||||||
{
|
{
|
||||||
public AppConfig AppConfig { get; private set; }
|
public AppConfig AppConfig { get; private set; }
|
||||||
public InputConfig InputConfig { get; private set; }
|
public InputConfig InputConfig { get; private set; }
|
||||||
public CharacterCameraConfig CharacterCameraConfig { get; private set; }
|
public CameraConfig CameraConfig { get; private set; }
|
||||||
|
|
||||||
public void Load()
|
public void Load()
|
||||||
{
|
{
|
||||||
InputConfig = Resources.Load<InputConfig>(string.Format(StringPaths.ConfigSingle, "App", "InputConfig"));
|
InputConfig = Resources.Load<InputConfig>(string.Format(StringPaths.ConfigSingle, "App", "InputConfig"));
|
||||||
AppConfig = Resources.Load<AppConfig>(string.Format(StringPaths.ConfigSingle, "App", "AppConfig"));
|
AppConfig = Resources.Load<AppConfig>(string.Format(StringPaths.ConfigSingle, "App", "AppConfig"));
|
||||||
CharacterCameraConfig = Resources.Load<CharacterCameraConfig>(string.Format(StringPaths.ConfigSingle, "App", "CharacterCameraConfig"));
|
CameraConfig = Resources.Load<CameraConfig>(string.Format(StringPaths.ConfigSingle, "App", "CameraConfig"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+4
-2
@@ -10,8 +10,8 @@ MonoBehaviour:
|
|||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: 72fbf590e5fd4747acfdd32eb26bba3a, type: 3}
|
m_Script: {fileID: 11500000, guid: 72fbf590e5fd4747acfdd32eb26bba3a, type: 3}
|
||||||
m_Name: CharacterCameraConfig
|
m_Name: CameraConfig
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Code.Configs.CharacterCameraConfig
|
m_EditorClassIdentifier: Assembly-CSharp::Code.Configs.CameraConfig
|
||||||
defaultDistance: 6
|
defaultDistance: 6
|
||||||
minDistance: 3
|
minDistance: 3
|
||||||
maxDistance: 10
|
maxDistance: 10
|
||||||
@@ -23,3 +23,5 @@ MonoBehaviour:
|
|||||||
maxVerticalAngle: 70
|
maxVerticalAngle: 70
|
||||||
defaultVerticalAngle: 10
|
defaultVerticalAngle: 10
|
||||||
defaultCameraMode: 0
|
defaultCameraMode: 0
|
||||||
|
defaultFollowPosition: {x: 0, y: 0, z: 0}
|
||||||
|
cameraPrefab: {fileID: 374984699890489845, guid: 8b8bf5712dc5a42c7bd8e22cddb884c3, type: 3}
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 6938984fc7d25285abb4922dd46d9272
|
guid: d63c98162aec4c9f9b55578df6aee277
|
||||||
NativeFormatImporter:
|
NativeFormatImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
mainObjectFileID: 11400000
|
mainObjectFileID: 11400000
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 608c7bc920473dfe5a28da884a28fa9d
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 32ef2c05fcde7cfff8a0f3cb8aef19dd
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,219 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &4020116641700429774
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8446312744501130134}
|
||||||
|
- component: {fileID: 2909726676418717939}
|
||||||
|
- component: {fileID: 2501524445164724345}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: EventSystem
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &8446312744501130134
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4020116641700429774}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 8978384765604412142}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &2909726676418717939
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4020116641700429774}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.EventSystem
|
||||||
|
m_FirstSelected: {fileID: 0}
|
||||||
|
m_sendNavigationEvents: 1
|
||||||
|
m_DragThreshold: 10
|
||||||
|
--- !u!114 &2501524445164724345
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4020116641700429774}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule
|
||||||
|
m_SendPointerHoverToParent: 1
|
||||||
|
m_MoveRepeatDelay: 0.5
|
||||||
|
m_MoveRepeatRate: 0.1
|
||||||
|
m_XRTrackingOrigin: {fileID: 0}
|
||||||
|
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_DeselectOnBackgroundClick: 1
|
||||||
|
m_PointerBehavior: 0
|
||||||
|
m_CursorLockBehavior: 0
|
||||||
|
m_ScrollDeltaPerTick: 6
|
||||||
|
--- !u!1 &6099115053225634464
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8978384765604412142}
|
||||||
|
- component: {fileID: 374984699890489845}
|
||||||
|
- component: {fileID: 4075496901397588323}
|
||||||
|
- component: {fileID: 7468744325105696788}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Camera
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &8978384765604412142
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6099115053225634464}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0.19427353, y: 0.44825727, z: -0.100474596, w: 0.8667341}
|
||||||
|
m_LocalPosition: {x: -223.01709, y: 389.89224, z: -363.3137}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 8446312744501130134}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!20 &374984699890489845
|
||||||
|
Camera:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6099115053225634464}
|
||||||
|
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_Iso: 200
|
||||||
|
m_ShutterSpeed: 0.005
|
||||||
|
m_Aperture: 16
|
||||||
|
m_FocusDistance: 10
|
||||||
|
m_FocalLength: 50
|
||||||
|
m_BladeCount: 5
|
||||||
|
m_Curvature: {x: 2, y: 11}
|
||||||
|
m_BarrelClipping: 0.25
|
||||||
|
m_Anamorphism: 0
|
||||||
|
m_SensorSize: {x: 36, y: 24}
|
||||||
|
m_LensShift: {x: 0, y: 0}
|
||||||
|
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: 0
|
||||||
|
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!81 &4075496901397588323
|
||||||
|
AudioListener:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6099115053225634464}
|
||||||
|
m_Enabled: 1
|
||||||
|
--- !u!114 &7468744325105696788
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6099115053225634464}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData
|
||||||
|
m_RenderShadows: 1
|
||||||
|
m_RequiresDepthTextureOption: 2
|
||||||
|
m_RequiresOpaqueTextureOption: 2
|
||||||
|
m_CameraType: 0
|
||||||
|
m_Cameras: []
|
||||||
|
m_RendererIndex: -1
|
||||||
|
m_VolumeLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 1
|
||||||
|
m_VolumeTrigger: {fileID: 0}
|
||||||
|
m_VolumeFrameworkUpdateModeOption: 2
|
||||||
|
m_RenderPostProcessing: 0
|
||||||
|
m_Antialiasing: 0
|
||||||
|
m_AntialiasingQuality: 2
|
||||||
|
m_StopNaN: 0
|
||||||
|
m_Dithering: 0
|
||||||
|
m_ClearDepth: 1
|
||||||
|
m_AllowXRRendering: 1
|
||||||
|
m_AllowHDROutput: 1
|
||||||
|
m_UseScreenCoordOverride: 0
|
||||||
|
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_RequiresDepthTexture: 0
|
||||||
|
m_RequiresColorTexture: 0
|
||||||
|
m_TaaSettings:
|
||||||
|
m_Quality: 3
|
||||||
|
m_FrameInfluence: 0.1
|
||||||
|
m_JitterScale: 1
|
||||||
|
m_MipBias: 0
|
||||||
|
m_VarianceClampScale: 0.9
|
||||||
|
m_ContrastAdaptiveSharpening: 0
|
||||||
|
m_Version: 2
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8b8bf5712dc5a42c7bd8e22cddb884c3
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -119,52 +119,6 @@ NavMeshSettings:
|
|||||||
debug:
|
debug:
|
||||||
m_Flags: 0
|
m_Flags: 0
|
||||||
m_NavMeshData: {fileID: 0}
|
m_NavMeshData: {fileID: 0}
|
||||||
--- !u!1 &828922429
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 828922431}
|
|
||||||
- component: {fileID: 828922430}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: SkipToGameplay
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!114 &828922430
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 828922429}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: affd42e82c2547a5af4604b574a24f59, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Code.App.Debug.GoToState
|
|
||||||
gotoState: 4
|
|
||||||
allowedState: -1
|
|
||||||
--- !u!4 &828922431
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 828922429}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: -0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1 &1253837927
|
--- !u!1 &1253837927
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -214,4 +168,3 @@ SceneRoots:
|
|||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_Roots:
|
m_Roots:
|
||||||
- {fileID: 1253837929}
|
- {fileID: 1253837929}
|
||||||
- {fileID: 828922431}
|
|
||||||
@@ -208,166 +208,6 @@ MeshFilter:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 55880351}
|
m_GameObject: {fileID: 55880351}
|
||||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
--- !u!1 &338454659
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 338454662}
|
|
||||||
- component: {fileID: 338454661}
|
|
||||||
- component: {fileID: 338454660}
|
|
||||||
- component: {fileID: 338454663}
|
|
||||||
- component: {fileID: 338454664}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: CharacterCamera
|
|
||||||
m_TagString: MainCamera
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!81 &338454660
|
|
||||||
AudioListener:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 338454659}
|
|
||||||
m_Enabled: 1
|
|
||||||
--- !u!20 &338454661
|
|
||||||
Camera:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 338454659}
|
|
||||||
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_Iso: 200
|
|
||||||
m_ShutterSpeed: 0.005
|
|
||||||
m_Aperture: 16
|
|
||||||
m_FocusDistance: 10
|
|
||||||
m_FocalLength: 50
|
|
||||||
m_BladeCount: 5
|
|
||||||
m_Curvature: {x: 2, y: 11}
|
|
||||||
m_BarrelClipping: 0.25
|
|
||||||
m_Anamorphism: 0
|
|
||||||
m_SensorSize: {x: 36, y: 24}
|
|
||||||
m_LensShift: {x: 0, y: 0}
|
|
||||||
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 &338454662
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 338454659}
|
|
||||||
serializedVersion: 2
|
|
||||||
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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &338454663
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 338454659}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData
|
|
||||||
m_RenderShadows: 1
|
|
||||||
m_RequiresDepthTextureOption: 2
|
|
||||||
m_RequiresOpaqueTextureOption: 2
|
|
||||||
m_CameraType: 0
|
|
||||||
m_Cameras: []
|
|
||||||
m_RendererIndex: -1
|
|
||||||
m_VolumeLayerMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 1
|
|
||||||
m_VolumeTrigger: {fileID: 0}
|
|
||||||
m_VolumeFrameworkUpdateModeOption: 2
|
|
||||||
m_RenderPostProcessing: 0
|
|
||||||
m_Antialiasing: 0
|
|
||||||
m_AntialiasingQuality: 2
|
|
||||||
m_StopNaN: 0
|
|
||||||
m_Dithering: 0
|
|
||||||
m_ClearDepth: 1
|
|
||||||
m_AllowXRRendering: 1
|
|
||||||
m_AllowHDROutput: 1
|
|
||||||
m_UseScreenCoordOverride: 0
|
|
||||||
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_RequiresDepthTexture: 0
|
|
||||||
m_RequiresColorTexture: 0
|
|
||||||
m_TaaSettings:
|
|
||||||
m_Quality: 3
|
|
||||||
m_FrameInfluence: 0.1
|
|
||||||
m_JitterScale: 1
|
|
||||||
m_MipBias: 0
|
|
||||||
m_VarianceClampScale: 0.9
|
|
||||||
m_ContrastAdaptiveSharpening: 0
|
|
||||||
m_Version: 2
|
|
||||||
--- !u!114 &338454664
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 338454659}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: f1d98e6c5419411098391c07861e627e, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Code.Gameplay.Player.PlayerCamera
|
|
||||||
defaultDistance: 6
|
|
||||||
minDistance: 3
|
|
||||||
maxDistance: 10
|
|
||||||
distanceMovementSpeed: 5
|
|
||||||
rotationSpeed: 0.3
|
|
||||||
rotationSharpness: 100
|
|
||||||
followSharpness: 100
|
|
||||||
minVerticalAngle: -70
|
|
||||||
maxVerticalAngle: 70
|
|
||||||
defaultVerticalAngle: 10
|
|
||||||
--- !u!1 &453575297
|
--- !u!1 &453575297
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -904,7 +744,6 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 9f2cdbe59523ace7ab0d8dfc36b4eb02, type: 3}
|
m_Script: {fileID: 11500000, guid: 9f2cdbe59523ace7ab0d8dfc36b4eb02, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Player
|
m_EditorClassIdentifier: Assembly-CSharp::Player
|
||||||
characterCamera: {fileID: 338454664}
|
|
||||||
customCharacterController: {fileID: 1696686258}
|
customCharacterController: {fileID: 1696686258}
|
||||||
cameraFollowPoint: {fileID: 453575298}
|
cameraFollowPoint: {fileID: 453575298}
|
||||||
--- !u!114 &1696686256
|
--- !u!114 &1696686256
|
||||||
@@ -1044,7 +883,6 @@ Transform:
|
|||||||
SceneRoots:
|
SceneRoots:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_Roots:
|
m_Roots:
|
||||||
- {fileID: 338454662}
|
|
||||||
- {fileID: 1959874991}
|
- {fileID: 1959874991}
|
||||||
- {fileID: 1696686254}
|
- {fileID: 1696686254}
|
||||||
- {fileID: 481156070}
|
- {fileID: 481156070}
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f669a7bf66e9d7f868d912b64e88e3ec
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2a6b8d1e15a85328cbaff95e3c73cdfd
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,690 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
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: 71c1514a6bd24e1e882cebbe1904ce04, type: 3}
|
||||||
|
m_Name: SOUTHGHETTO SDF
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TMP_FontAsset
|
||||||
|
m_Version: 1.1.0
|
||||||
|
m_FaceInfo:
|
||||||
|
m_FaceIndex: 0
|
||||||
|
m_FamilyName: SouthGhetto
|
||||||
|
m_StyleName: Regular
|
||||||
|
m_PointSize: 90
|
||||||
|
m_Scale: 1
|
||||||
|
m_UnitsPerEM: 1000
|
||||||
|
m_LineHeight: 99
|
||||||
|
m_AscentLine: 67.5
|
||||||
|
m_CapLine: 63
|
||||||
|
m_MeanLine: 63
|
||||||
|
m_Baseline: 0
|
||||||
|
m_DescentLine: -22.5
|
||||||
|
m_SuperscriptOffset: 67.5
|
||||||
|
m_SuperscriptSize: 0.5
|
||||||
|
m_SubscriptOffset: -22.5
|
||||||
|
m_SubscriptSize: 0.5
|
||||||
|
m_UnderlineOffset: -11.25
|
||||||
|
m_UnderlineThickness: 4.5
|
||||||
|
m_StrikethroughOffset: 25.2
|
||||||
|
m_StrikethroughThickness: 4.5
|
||||||
|
m_TabWidth: 23
|
||||||
|
m_Material: {fileID: 1091306912205572362}
|
||||||
|
m_SourceFontFileGUID: 4c18ae64a0f1d59239a927890bc9aa3f
|
||||||
|
m_CreationSettings:
|
||||||
|
sourceFontFileName:
|
||||||
|
sourceFontFileGUID: 4c18ae64a0f1d59239a927890bc9aa3f
|
||||||
|
faceIndex: 0
|
||||||
|
pointSizeSamplingMode: 0
|
||||||
|
pointSize: 90
|
||||||
|
padding: 9
|
||||||
|
paddingMode: 2
|
||||||
|
packingMode: 0
|
||||||
|
atlasWidth: 1024
|
||||||
|
atlasHeight: 1024
|
||||||
|
characterSetSelectionMode: 7
|
||||||
|
characterSequence:
|
||||||
|
referencedFontAssetGUID:
|
||||||
|
referencedTextAssetGUID:
|
||||||
|
fontStyle: 0
|
||||||
|
fontStyleModifier: 0
|
||||||
|
renderMode: 4165
|
||||||
|
includeFontFeatures: 0
|
||||||
|
m_SourceFontFile: {fileID: 12800000, guid: 4c18ae64a0f1d59239a927890bc9aa3f, type: 3}
|
||||||
|
m_SourceFontFilePath:
|
||||||
|
m_AtlasPopulationMode: 1
|
||||||
|
InternalDynamicOS: 0
|
||||||
|
m_GlyphTable:
|
||||||
|
- m_Index: 30
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 51.296875
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 56.703125
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 10
|
||||||
|
m_Y: 10
|
||||||
|
m_Width: 52
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 60
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 49.234375
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 54.625
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 10
|
||||||
|
m_Y: 92
|
||||||
|
m_Width: 50
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 67
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 49.234375
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 54.625
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 10
|
||||||
|
m_Y: 174
|
||||||
|
m_Width: 50
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 64
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 31.40625
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 36.8125
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 10
|
||||||
|
m_Y: 256
|
||||||
|
m_Width: 33
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 77
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 53.09375
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 58.5
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 10
|
||||||
|
m_Y: 338
|
||||||
|
m_Width: 54
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 73
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 52.203125
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 55.984375
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 62
|
||||||
|
m_Y: 256
|
||||||
|
m_Width: 53
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 94
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 51.296875
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 56.703125
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 79
|
||||||
|
m_Y: 92
|
||||||
|
m_Width: 52
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 121
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 49.234375
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 54.625
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 81
|
||||||
|
m_Y: 10
|
||||||
|
m_Width: 50
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 134
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 49.234375
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 54.625
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 79
|
||||||
|
m_Y: 174
|
||||||
|
m_Width: 50
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 118
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 49.234375
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 54.625
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 10
|
||||||
|
m_Y: 420
|
||||||
|
m_Width: 50
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 136
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 51.296875
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 56.703125
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 10
|
||||||
|
m_Y: 502
|
||||||
|
m_Width: 52
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 146
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 49.234375
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 54.625
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 79
|
||||||
|
m_Y: 420
|
||||||
|
m_Width: 50
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 88
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 49.234375
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 54.625
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 83
|
||||||
|
m_Y: 338
|
||||||
|
m_Width: 50
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 145
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 66.59375
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 72
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 134
|
||||||
|
m_Y: 256
|
||||||
|
m_Width: 68
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 127
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 51.296875
|
||||||
|
m_Height: 81.359375
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 81.359375
|
||||||
|
m_HorizontalAdvance: 56.703125
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 150
|
||||||
|
m_Y: 10
|
||||||
|
m_Width: 52
|
||||||
|
m_Height: 82
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
- m_Index: 126
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 51.296875
|
||||||
|
m_Height: 63
|
||||||
|
m_HorizontalBearingX: 2.703125
|
||||||
|
m_HorizontalBearingY: 63
|
||||||
|
m_HorizontalAdvance: 56.703125
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 148
|
||||||
|
m_Y: 174
|
||||||
|
m_Width: 52
|
||||||
|
m_Height: 63
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
m_ClassDefinitionType: 0
|
||||||
|
m_CharacterTable:
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 68
|
||||||
|
m_GlyphIndex: 30
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 101
|
||||||
|
m_GlyphIndex: 60
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 108
|
||||||
|
m_GlyphIndex: 67
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 105
|
||||||
|
m_GlyphIndex: 64
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 118
|
||||||
|
m_GlyphIndex: 77
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 114
|
||||||
|
m_GlyphIndex: 73
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 1048
|
||||||
|
m_GlyphIndex: 94
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 1075
|
||||||
|
m_GlyphIndex: 121
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 1088
|
||||||
|
m_GlyphIndex: 134
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 1072
|
||||||
|
m_GlyphIndex: 118
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 1090
|
||||||
|
m_GlyphIndex: 136
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 1100
|
||||||
|
m_GlyphIndex: 146
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 1042
|
||||||
|
m_GlyphIndex: 88
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 1099
|
||||||
|
m_GlyphIndex: 145
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 1081
|
||||||
|
m_GlyphIndex: 127
|
||||||
|
m_Scale: 1
|
||||||
|
- m_ElementType: 1
|
||||||
|
m_Unicode: 1080
|
||||||
|
m_GlyphIndex: 126
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasTextures:
|
||||||
|
- {fileID: 688428377202190775}
|
||||||
|
m_AtlasTextureIndex: 0
|
||||||
|
m_IsMultiAtlasTexturesEnabled: 0
|
||||||
|
m_GetFontFeatures: 1
|
||||||
|
m_ClearDynamicDataOnBuild: 1
|
||||||
|
m_AtlasWidth: 1024
|
||||||
|
m_AtlasHeight: 1024
|
||||||
|
m_AtlasPadding: 9
|
||||||
|
m_AtlasRenderMode: 4165
|
||||||
|
m_UsedGlyphRects:
|
||||||
|
- m_X: 0
|
||||||
|
m_Y: 0
|
||||||
|
m_Width: 71
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 0
|
||||||
|
m_Y: 82
|
||||||
|
m_Width: 69
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 0
|
||||||
|
m_Y: 164
|
||||||
|
m_Width: 69
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 0
|
||||||
|
m_Y: 246
|
||||||
|
m_Width: 52
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 0
|
||||||
|
m_Y: 328
|
||||||
|
m_Width: 73
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 52
|
||||||
|
m_Y: 246
|
||||||
|
m_Width: 72
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 69
|
||||||
|
m_Y: 82
|
||||||
|
m_Width: 71
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 71
|
||||||
|
m_Y: 0
|
||||||
|
m_Width: 69
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 69
|
||||||
|
m_Y: 164
|
||||||
|
m_Width: 69
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 0
|
||||||
|
m_Y: 410
|
||||||
|
m_Width: 69
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 0
|
||||||
|
m_Y: 492
|
||||||
|
m_Width: 71
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 69
|
||||||
|
m_Y: 410
|
||||||
|
m_Width: 69
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 73
|
||||||
|
m_Y: 328
|
||||||
|
m_Width: 69
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 124
|
||||||
|
m_Y: 246
|
||||||
|
m_Width: 87
|
||||||
|
m_Height: 82
|
||||||
|
- m_X: 140
|
||||||
|
m_Y: 0
|
||||||
|
m_Width: 71
|
||||||
|
m_Height: 101
|
||||||
|
- m_X: 138
|
||||||
|
m_Y: 164
|
||||||
|
m_Width: 71
|
||||||
|
m_Height: 82
|
||||||
|
m_FreeGlyphRects:
|
||||||
|
- m_X: 0
|
||||||
|
m_Y: 574
|
||||||
|
m_Width: 1023
|
||||||
|
m_Height: 449
|
||||||
|
- m_X: 71
|
||||||
|
m_Y: 492
|
||||||
|
m_Width: 952
|
||||||
|
m_Height: 531
|
||||||
|
- m_X: 138
|
||||||
|
m_Y: 410
|
||||||
|
m_Width: 885
|
||||||
|
m_Height: 613
|
||||||
|
- m_X: 142
|
||||||
|
m_Y: 328
|
||||||
|
m_Width: 881
|
||||||
|
m_Height: 695
|
||||||
|
- m_X: 211
|
||||||
|
m_Y: 0
|
||||||
|
m_Width: 812
|
||||||
|
m_Height: 1023
|
||||||
|
- m_X: 140
|
||||||
|
m_Y: 101
|
||||||
|
m_Width: 883
|
||||||
|
m_Height: 63
|
||||||
|
- m_X: 209
|
||||||
|
m_Y: 101
|
||||||
|
m_Width: 814
|
||||||
|
m_Height: 145
|
||||||
|
m_FontFeatureTable:
|
||||||
|
m_MultipleSubstitutionRecords: []
|
||||||
|
m_LigatureSubstitutionRecords: []
|
||||||
|
m_GlyphPairAdjustmentRecords: []
|
||||||
|
m_MarkToBaseAdjustmentRecords: []
|
||||||
|
m_MarkToMarkAdjustmentRecords: []
|
||||||
|
m_ShouldReimportFontFeatures: 0
|
||||||
|
m_FallbackFontAssetTable: []
|
||||||
|
m_FontWeightTable:
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
fontWeights: []
|
||||||
|
normalStyle: 0
|
||||||
|
normalSpacingOffset: 0
|
||||||
|
boldStyle: 0.75
|
||||||
|
boldSpacing: 7
|
||||||
|
italicStyle: 35
|
||||||
|
tabSize: 10
|
||||||
|
m_fontInfo:
|
||||||
|
Name:
|
||||||
|
PointSize: 0
|
||||||
|
Scale: 0
|
||||||
|
CharacterCount: 0
|
||||||
|
LineHeight: 0
|
||||||
|
Baseline: 0
|
||||||
|
Ascender: 0
|
||||||
|
CapHeight: 0
|
||||||
|
Descender: 0
|
||||||
|
CenterLine: 0
|
||||||
|
SuperscriptOffset: 0
|
||||||
|
SubscriptOffset: 0
|
||||||
|
SubSize: 0
|
||||||
|
Underline: 0
|
||||||
|
UnderlineThickness: 0
|
||||||
|
strikethrough: 0
|
||||||
|
strikethroughThickness: 0
|
||||||
|
TabWidth: 0
|
||||||
|
Padding: 0
|
||||||
|
AtlasWidth: 0
|
||||||
|
AtlasHeight: 0
|
||||||
|
m_glyphInfoList: []
|
||||||
|
m_KerningTable:
|
||||||
|
kerningPairs: []
|
||||||
|
fallbackFontAssets: []
|
||||||
|
atlas: {fileID: 0}
|
||||||
|
--- !u!28 &688428377202190775
|
||||||
|
Texture2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: SOUTHGHETTO Atlas
|
||||||
|
m_ImageContentsHash:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 00000000000000000000000000000000
|
||||||
|
m_IsAlphaChannelOptional: 0
|
||||||
|
serializedVersion: 4
|
||||||
|
m_Width: 1024
|
||||||
|
m_Height: 1024
|
||||||
|
m_CompleteImageSize: 1048576
|
||||||
|
m_MipsStripped: 0
|
||||||
|
m_TextureFormat: 1
|
||||||
|
m_MipCount: 1
|
||||||
|
m_IsReadable: 1
|
||||||
|
m_IsPreProcessed: 0
|
||||||
|
m_IgnoreMipmapLimit: 1
|
||||||
|
m_MipmapLimitGroupName:
|
||||||
|
m_StreamingMipmaps: 0
|
||||||
|
m_StreamingMipmapsPriority: 0
|
||||||
|
m_VTOnly: 0
|
||||||
|
m_AlphaIsTransparency: 0
|
||||||
|
m_ImageCount: 1
|
||||||
|
m_TextureDimension: 2
|
||||||
|
m_TextureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_FilterMode: 1
|
||||||
|
m_Aniso: 1
|
||||||
|
m_MipBias: 0
|
||||||
|
m_WrapU: 0
|
||||||
|
m_WrapV: 0
|
||||||
|
m_WrapW: 0
|
||||||
|
m_LightmapFormat: 0
|
||||||
|
m_ColorSpace: 1
|
||||||
|
m_PlatformBlob:
|
||||||
|
image data: 1048576
|
||||||
|
_typelessdata: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000407090a131313131313131313131313131212121212121212121212121212121212121212110f0d0a0706040100000000000000000000000000000000000000000000000000000407090a1313131313131313131313130e0d0b07030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000407090a13131313131313131313131311070604000000000000000000000000000000000001070b0f111213131313131313131313131313120f0a05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b101416172020202020202020202020201f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1e1e1c1a171413110d080100000000000000000000000000000000000000000000050b101416172020202020202020202020201a1a17130e08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b101416172020202020202020202020201e1413100c070100000000000000000000000000050c12171b1d1e202020202020202020202020201e1b16100901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Line truncated
|
||||||
|
m_StreamData:
|
||||||
|
serializedVersion: 2
|
||||||
|
offset: 0
|
||||||
|
size: 0
|
||||||
|
path:
|
||||||
|
--- !u!21 &1091306912205572362
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: SOUTHGHETTO Atlas Material
|
||||||
|
m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Cube:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _FaceTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 688428377202190775}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OutlineTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _Ambient: 0.5
|
||||||
|
- _Bevel: 0.5
|
||||||
|
- _BevelClamp: 0
|
||||||
|
- _BevelOffset: 0
|
||||||
|
- _BevelRoundness: 0
|
||||||
|
- _BevelWidth: 0
|
||||||
|
- _BumpFace: 0
|
||||||
|
- _BumpOutline: 0
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _CullMode: 0
|
||||||
|
- _Diffuse: 0.5
|
||||||
|
- _FaceDilate: 0
|
||||||
|
- _FaceUVSpeedX: 0
|
||||||
|
- _FaceUVSpeedY: 0
|
||||||
|
- _GlowInner: 0.05
|
||||||
|
- _GlowOffset: 0
|
||||||
|
- _GlowOuter: 0.05
|
||||||
|
- _GlowPower: 0.75
|
||||||
|
- _GradientScale: 10
|
||||||
|
- _LightAngle: 3.1416
|
||||||
|
- _MaskSoftnessX: 0
|
||||||
|
- _MaskSoftnessY: 0
|
||||||
|
- _OutlineSoftness: 0
|
||||||
|
- _OutlineUVSpeedX: 0
|
||||||
|
- _OutlineUVSpeedY: 0
|
||||||
|
- _OutlineWidth: 0
|
||||||
|
- _PerspectiveFilter: 0.875
|
||||||
|
- _Reflectivity: 10
|
||||||
|
- _ScaleRatioA: 0.9
|
||||||
|
- _ScaleRatioB: 0.73125
|
||||||
|
- _ScaleRatioC: 0.73125
|
||||||
|
- _ScaleX: 1
|
||||||
|
- _ScaleY: 1
|
||||||
|
- _ShaderFlags: 0
|
||||||
|
- _Sharpness: 0
|
||||||
|
- _SpecularPower: 2
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _TextureHeight: 1024
|
||||||
|
- _TextureWidth: 1024
|
||||||
|
- _UnderlayDilate: 0
|
||||||
|
- _UnderlayOffsetX: 0
|
||||||
|
- _UnderlayOffsetY: 0
|
||||||
|
- _UnderlaySoftness: 0
|
||||||
|
- _VertexOffsetX: 0
|
||||||
|
- _VertexOffsetY: 0
|
||||||
|
- _WeightBold: 0.75
|
||||||
|
- _WeightNormal: 0
|
||||||
|
m_Colors:
|
||||||
|
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||||
|
- _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
- _FaceColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _GlowColor: {r: 0, g: 1, b: 0, a: 0.5}
|
||||||
|
- _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767}
|
||||||
|
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c37e59bfd1d9cd5d083d88fcd9784d1f
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 75793e520683ea032ace153b3040cf4e
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,170 @@
|
|||||||
|
%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: 10
|
||||||
|
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_UseRadianceAmbientProbe: 0
|
||||||
|
--- !u!157 &3
|
||||||
|
LightmapSettings:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 13
|
||||||
|
m_BakeOnSceneLoad: 0
|
||||||
|
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_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: 20201, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_LightingSettings: {fileID: 0}
|
||||||
|
--- !u!196 &4
|
||||||
|
NavMeshSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_BuildSettings:
|
||||||
|
serializedVersion: 3
|
||||||
|
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
|
||||||
|
buildHeightMesh: 0
|
||||||
|
maxJobWorkers: 0
|
||||||
|
preserveTilesOutsideBounds: 0
|
||||||
|
debug:
|
||||||
|
m_Flags: 0
|
||||||
|
m_NavMeshData: {fileID: 0}
|
||||||
|
--- !u!1 &1253837927
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1253837929}
|
||||||
|
- component: {fileID: 1253837928}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: SceneScope
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &1253837928
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1253837927}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 3fd1482e4a9dee141aecc5bcd0a4f0f3, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Reflex::Reflex.Core.SceneScope
|
||||||
|
--- !u!4 &1253837929
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1253837927}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1660057539 &9223372036854775807
|
||||||
|
SceneRoots:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_Roots:
|
||||||
|
- {fileID: 1253837929}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4ee6c9ddf0020bc978ffcb0af4b2464a
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Reference in new issue
Block a user