You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

79 lines
2.1 KiB

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ConsoleTest : MonoBehaviour
{
[SerializeField]
private MissionPack baseGame = MissionPack.Quake;
[SerializeField]
private string mod, args;
[SerializeField]
private Camera mainCamera;
[SerializeField]
private List<VisualStyle> visualStyles = new List<VisualStyle>();
private UniQuake uq;
private void Start()
{
Debug.Log($"Running in {IntPtr.Size * 8}-bit mode");
#if UNITY_PS5 || UNITY_GAMECORE_SCARLETT
Application.targetFrameRate = 120;
Screen.SetResolution(Screen.currentResolution.width, Screen.currentResolution.height, true, 120);
#endif
uq = gameObject.AddComponent<UniQuake>();
uq.BaseGame = baseGame;
uq.ModDirectory = mod;
uq.AdditionalArguments = ParseArgs();
uq.Camera = mainCamera;
uq.GameLayer = Layers.Game1;
uq.ViewModelLayer = Layers.ViewModel1;
uq.SetVisualStyle(visualStyles[0]);
}
private string[] ParseArgs()
{
if (args == null)
return new string[0];
return args.Split(new[] {' ', '\t', '\r', '\n'}, StringSplitOptions.RemoveEmptyEntries);
}
private readonly float[] frameTimes = new float[10];
private int frameCount = 0;
private float framesPerSecond = float.NaN;
private string fpsText;
private void Update()
{
frameTimes[frameCount++] = Time.unscaledDeltaTime;
if (frameCount >= frameTimes.Length)
{
float totalTime = 0f;
for (int i = 0; i < frameTimes.Length; ++i)
{
totalTime += frameTimes[i];
}
framesPerSecond = (float)frameCount / totalTime;
frameCount = 0;
fpsText = $"{framesPerSecond:0.0} fps";
}
}
private void OnGUI()
{
GUI.matrix = Matrix4x4.Scale(new Vector3(3, 3, 1));
if (fpsText != null)
GUI.Label(new Rect(10, 10, 1000, 100), fpsText);
}
}