Commit b78482ab authored by 17김현학's avatar 17김현학

Apply .gitignore

parent 30a40c2e
# This .gitignore file should be placed at the root of your Unity project directory # =============== #
# # Unity generated #
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore # =============== #
# Temp/
/[Ll]ibrary/ Obj/
/[Tt]emp/ UnityGenerated/
/[Oo]bj/ Library/
/[Bb]uild/
/[Bb]uilds/ # ===================================== #
/[Ll]ogs/ # Visual Studio / MonoDevelop generated #
/[Mm]emoryCaptures/ # ===================================== #
# Never ignore Asset meta data
!/[Aa]ssets/**/*.meta
# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*
# TextMesh Pro files
[Aa]ssets/TextMesh*Pro/
# Autogenerated Jetbrains Rider plugin
[Aa]ssets/Plugins/Editor/JetBrains*
# Visual Studio cache directory
.vs/
# Gradle cache directory
.gradle/
# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/ ExportedObj/
.consulo/ *.svd
*.userprefs
*.csproj *.csproj
*.unityproj *.pidb
*.sln
*.suo *.suo
*.tmp *.sln
*.user *.user
*.userprefs *.unityproj
*.pidb
*.booproj *.booproj
*.svd
*.pdb # ============ #
*.mdb # OS generated #
*.opendb # ============ #
*.VC.db .DS_Store
.DS_Store?
# Unity3D generated meta files ._*
*.pidb.meta .Spotlight-V100
*.pdb.meta .Trashes
*.mdb.meta Icon?
ehthumbs.db
# Unity3D generated file on crash reports Thumbs.db
sysinfo.txt GraphicsSettings.asset
ProjectSettings.asset
# Builds ProjectVersion.txt
\ No newline at end of file
*.apk
*.unitypackage
# Crashlytics generated file
crashlytics-build.properties
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using System.Linq; using System.Linq;
using UnityEngine.UI; using UnityEngine.UI;
using System; using System;
using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.LinearAlgebra.Double; using MathNet.Numerics.LinearAlgebra.Double;
public class PathRenderer : MonoBehaviour public class PathRenderer : MonoBehaviour
{ {
[SerializeField] [SerializeField]
Square square; Square square;
[SerializeField] [SerializeField]
GameObject PathColliderPrefab; GameObject PathColliderPrefab;
[SerializeField] [SerializeField]
Camera playercamera; Camera playercamera;
[SerializeField] [SerializeField]
LevelManager levelManager; LevelManager levelManager;
[SerializeField] [SerializeField]
BackgroundMovement background; BackgroundMovement background;
[SerializeField] [SerializeField]
LogScaleSlider velocityslider; LogScaleSlider velocityslider;
LineRenderer _pathRenderer; LineRenderer _pathRenderer;
float _originalPathColliderY; float _originalPathColliderY;
public BackgroundMovement Background public BackgroundMovement Background
{ {
get get
{ {
return background; return background;
} }
set set
{ {
background = value; background = value;
} }
} }
// Start is called before the first frame update // Start is called before the first frame update
void Start() void Start()
{ {
_originalPathColliderY = PathColliderPrefab.transform.localScale.y / 2; _originalPathColliderY = PathColliderPrefab.transform.localScale.y / 2;
_pathRenderer = GetComponent<LineRenderer>(); _pathRenderer = GetComponent<LineRenderer>();
_ResetPaths(); _ResetPaths();
} }
// Update is called once per frame // Update is called once per frame
void Update() void Update()
{ {
if (Input.GetMouseButtonDown(1) && levelManager.player.isInertial()) if (Input.GetMouseButtonDown(1) && levelManager.player.isInertial())
{ {
RaycastHit hit; RaycastHit hit;
var ray = Camera.main.ScreenPointToRay(Input.mousePosition); var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit)) if (Physics.Raycast(ray, out hit))
{ {
ray = playercamera.ViewportPointToRay(hit.textureCoord); ray = playercamera.ViewportPointToRay(hit.textureCoord);
if (Physics.Raycast(ray, out hit)) if (Physics.Raycast(ray, out hit))
{ {
if (Input.GetKey(KeyCode.LeftShift)) if (Input.GetKey(KeyCode.LeftShift))
{ {
_DrawMorePath(hit.point); _DrawMorePath(hit.point);
} }
else else
{ {
_DrawOnePath(hit.point); _DrawOnePath(hit.point);
} }
} }
} }
/*if (Physics.Raycast(ray, out hit)) /*if (Physics.Raycast(ray, out hit))
{ {
if (Input.GetKey(KeyCode.LeftShift)) if (Input.GetKey(KeyCode.LeftShift))
{ {
_DrawMorePath(hit.point); _DrawMorePath(hit.point);
} }
else else
{ {
_DrawOnePath(hit.point); _DrawOnePath(hit.point);
} }
}*/ }*/
} }
} }
private void _DrawOnePath(Vector3 point) private void _DrawOnePath(Vector3 point)
{ {
_ResetPaths(); _ResetPaths();
square.pathList[0] = transform.localPosition; square.pathList[0] = transform.localPosition;
square.pathVelocity[0] = 0.0f; square.pathVelocity[0] = 0.0f;
var tmp = transform.InverseTransformPoint(point); var tmp = transform.InverseTransformPoint(point);
square.pathList[1] = new Vector3(tmp.x, tmp.y, 0.0f); square.pathList[1] = new Vector3(tmp.x, tmp.y, 0.0f);
square.pathVelocity[1] = velocityslider.GetLogScaleValue(); square.pathVelocity[1] = velocityslider.GetLogScaleValue();
_pathRenderer.SetPositions(square.pathList.ToArray()); _pathRenderer.SetPositions(square.pathList.ToArray());
_InstantiatePathCollider(0); _InstantiatePathCollider(0);
} }
private void _ResetPaths() private void _ResetPaths()
{ {
_pathRenderer.positionCount = 2; _pathRenderer.positionCount = 2;
square.pathList.Clear(); square.pathList.Clear();
square.pathVelocity.Clear(); square.pathVelocity.Clear();
square.pathList.Add(transform.localPosition); square.pathList.Add(transform.localPosition);
square.pathVelocity.Add(0.0f); square.pathVelocity.Add(0.0f);
square.pathList.Add(transform.localPosition); square.pathList.Add(transform.localPosition);
square.pathVelocity.Add(0.0f); square.pathVelocity.Add(0.0f);
_pathRenderer.SetPositions(square.pathList.ToArray()); _pathRenderer.SetPositions(square.pathList.ToArray());
for (int i = 0; i < transform.childCount; i++) for (int i = 0; i < transform.childCount; i++)
{ {
Destroy(transform.GetChild(i).gameObject); Destroy(transform.GetChild(i).gameObject);
} }
} }
private void _DrawMorePath(Vector3 point) private void _DrawMorePath(Vector3 point)
{ {
if (square.pathList.Count == 0) if (square.pathList.Count == 0)
{ {
_DrawOnePath(point); _DrawOnePath(point);
} }
else else
{ {
var tmp = transform.InverseTransformPoint(point); var tmp = transform.InverseTransformPoint(point);
square.pathList.Add(new Vector3(tmp.x, tmp.y, 0.0f)); square.pathList.Add(new Vector3(tmp.x, tmp.y, 0.0f));
square.pathVelocity.Add(velocityslider.GetLogScaleValue()); square.pathVelocity.Add(velocityslider.GetLogScaleValue());
_pathRenderer.positionCount = square.pathList.Count(); _pathRenderer.positionCount = square.pathList.Count();
_pathRenderer.SetPositions(square.pathList.ToArray()); _pathRenderer.SetPositions(square.pathList.ToArray());
_InstantiatePathCollider(square.pathList.Count() - 2); _InstantiatePathCollider(square.pathList.Count() - 2);
} }
} }
public void PathClear() public void PathClear()
{ {
_ResetPaths(); _ResetPaths();
} }
/// <summary> /// <summary>
/// 현재 설정된 경로를 반환. /// 현재 설정된 경로를 반환.
/// 0번은 내 위치 /// 0번은 내 위치
/// x y 가 공간 z 가 시간 /// x y 가 공간 z 가 시간
/// </summary> /// </summary>
public List<Vector3> PathPositionsXY public List<Vector3> PathPositionsXY
{ {
get get
{ {
return square.pathList; return square.pathList;
} }
} }
/// <summary> /// <summary>
/// 현재 설정된 경로를 반환. /// 현재 설정된 경로를 반환.
/// 0번은 현재위치 //패트롤 고려 /// 0번은 현재위치 //패트롤 고려
/// x z 가 공간 y 가 시간 /// x z 가 공간 y 가 시간
/// </summary> /// </summary>
public List<Vector3> PathPositionsXZ public List<Vector3> PathPositionsXZ
{ {
get get
{ {
List<Vector3> list = new List<Vector3>(); List<Vector3> list = new List<Vector3>();
foreach(var a in square.pathList) foreach(var a in square.pathList)
{ {
//xy -> xz //xy -> xz
list.Add(new Vector3(a.x, 0, a.y)); list.Add(new Vector3(a.x, 0, a.y));
} }
return list; return list;
} }
} }
/// <summary> /// <summary>
/// 현재 설정된 경로의 속력을 반환. /// 현재 설정된 경로의 속력을 반환.
/// 0번은 0.0f /// 0번은 0.0f
/// </summary> /// </summary>
public List<float> PathVelocities public List<float> PathVelocities
{ {
get get
{ {
return new List<float>(square.pathVelocity); return new List<float>(square.pathVelocity);
} }
} }
private void _InstantiatePathCollider(int n) private void _InstantiatePathCollider(int n)
{ {
var _pathCollider = Instantiate(PathColliderPrefab, transform); var _pathCollider = Instantiate(PathColliderPrefab, transform);
_pathCollider.name = "PathCollider-" + n; _pathCollider.name = "PathCollider-" + n;
_pathCollider.tag = "path"; _pathCollider.tag = "path";
_pathCollider.transform.localScale = new Vector3(0.1f, _originalPathColliderY, 0); _pathCollider.transform.localScale = new Vector3(0.1f, _originalPathColliderY, 0);
_pathCollider.transform.localEulerAngles = new Vector3(0, 0, _pathCollider.transform.localEulerAngles = new Vector3(0, 0,
(float)Constants.RadianToDegree(Mathf.PI / 2 + (float)Constants.RadianToDegree(Mathf.PI / 2 +
Mathf.Atan Mathf.Atan
(square.GetTangent( (square.GetTangent(
square.GetNthPath(n))))); square.GetNthPath(n)))));
float _newY = square.GetNthPath(n).magnitude; float _newY = square.GetNthPath(n).magnitude;
_pathCollider.transform.localScale = new Vector3(0.1f, _newY * _originalPathColliderY, 0); _pathCollider.transform.localScale = new Vector3(0.1f, _newY * _originalPathColliderY, 0);
_pathCollider.transform.localPosition = (square.pathList[n] + square.pathList[n + 1]) / 2; _pathCollider.transform.localPosition = (square.pathList[n] + square.pathList[n + 1]) / 2;
} }
public IEnumerator _StartMovingPath(int finalPathNum) public IEnumerator _StartMovingPath(int finalPathNum)
{ {
int i = 0; int i = 0;
var u = levelManager.player.v; var u = levelManager.player.v;
int tinterval = Constants.alphatinterval; int tinterval = Constants.alphatinterval;
VectorBuilder<double> V = Vector<double>.Build; VectorBuilder<double> V = Vector<double>.Build;
while (i <= finalPathNum) while (i <= finalPathNum)
{ {
Vector3 startpos = new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z); Vector3 startpos = new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z);
Vector3 dest = new Vector3(square.GetNthPath(i).x, 0f, square.GetNthPath(i).y); Vector3 dest = new Vector3(square.GetNthPath(i).x, 0f, square.GetNthPath(i).y);
Vector3 acceleration = dest.normalized; Vector3 acceleration = dest.normalized;
var v = square.GetPathVelocity(i); var v = square.GetPathVelocity(i);
var atmp = (float)(v * Constants.c); var atmp = (float)(v * Constants.c);
double[] vtmp = { (atmp * (acceleration.x / acceleration.magnitude)), 0.0, (atmp * (acceleration.z / acceleration.magnitude)) }; double[] vtmp = { (atmp * (acceleration.x / acceleration.magnitude)), 0.0, (atmp * (acceleration.z / acceleration.magnitude)) };
double[] xtmp = { dest.magnitude / (v * Constants.c), dest.x, dest.z }; double[] xtmp = { dest.magnitude / (v * Constants.c), dest.x, dest.z };
var deltavnaive = V.DenseOfArray(vtmp); var deltavnaive = V.DenseOfArray(vtmp);
var deltaxnaive = V.DenseOfArray(xtmp); var deltaxnaive = V.DenseOfArray(xtmp);
double[] tmp = {Constants.c * Constants.Gamma(deltavnaive.L2Norm()), double[] tmp = {Constants.c * Constants.Gamma(deltavnaive.L2Norm()),
deltavnaive[0] * Constants.Gamma(deltavnaive.L2Norm()), deltavnaive[0] * Constants.Gamma(deltavnaive.L2Norm()),
deltavnaive[2] * Constants.Gamma(deltavnaive.L2Norm())}; deltavnaive[2] * Constants.Gamma(deltavnaive.L2Norm())};
var deltav = V.DenseOfArray(tmp); var deltav = V.DenseOfArray(tmp);
Vector<double> deltax = deltaxnaive; Vector<double> deltax = deltaxnaive;
if (u.magnitude > 0.0f) if (u.magnitude > 0.0f)
{ {
deltav = Constants.BoostMatrix(-u) * deltav; deltav = Constants.BoostMatrix(-u) * deltav;
deltax = Constants.BoostMatrix(-u) * deltaxnaive; deltax = Constants.BoostMatrix(-u) * deltaxnaive;
} }
var tt = deltav[0] / Constants.c; var tt = deltav[0] / Constants.c;
Vector3 finaldeltav = new Vector3((float)(deltav[1] / tt), 0.0f, (float)(deltav[2] / tt)); Vector3 finaldeltav = new Vector3((float)(deltav[1] / tt), 0.0f, (float)(deltav[2] / tt));
Vector3 finaldeltax = new Vector3((float)deltax[1], 0.0f, (float)deltax[2]); Vector3 finaldeltax = new Vector3((float)deltax[1], 0.0f, (float)deltax[2]);
levelManager.player.v = finaldeltav; levelManager.player.v = finaldeltav;
while(true) while(true)
{ {
var currentpos = new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z); var currentpos = new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z);
var traveledpos = currentpos - startpos; var traveledpos = currentpos - startpos;
if (traveledpos.magnitude >= finaldeltax.magnitude) if (traveledpos.magnitude >= finaldeltax.magnitude)
{ {
break; break;
} }
yield return new WaitForFixedUpdate(); yield return new WaitForFixedUpdate();
} }
/* /*
levelManager.player.alpha = new Vector3(0, 0, 0); levelManager.player.alpha = new Vector3(0, 0, 0);
var v = square.GetPathVelocity(i); var v = square.GetPathVelocity(i);
var atmp = (float)(v * Constants.c); var atmp = (float)(v * Constants.c);
double[] vtmp = { ((acceleration.x / acceleration.magnitude)), 0.0, ((acceleration.z / acceleration.magnitude)) }; double[] vtmp = { ((acceleration.x / acceleration.magnitude)), 0.0, ((acceleration.z / acceleration.magnitude)) };
var deltavnaive = V.DenseOfArray(vtmp); var deltavnaive = V.DenseOfArray(vtmp);
double[] tmp = {Constants.c * Constants.Gamma(deltavnaive.L2Norm()), double[] tmp = {Constants.c * Constants.Gamma(deltavnaive.L2Norm()),
deltavnaive[0] * Constants.Gamma(deltavnaive.L2Norm()), deltavnaive[0] * Constants.Gamma(deltavnaive.L2Norm()),
deltavnaive[2] * Constants.Gamma(deltavnaive.L2Norm())}; deltavnaive[2] * Constants.Gamma(deltavnaive.L2Norm())};
var deltav = V.DenseOfArray(tmp); var deltav = V.DenseOfArray(tmp);
if (u.magnitude > 0.0f) if (u.magnitude > 0.0f)
{ {
deltav = Constants.BoostMatrix(u) * deltav; deltav = Constants.BoostMatrix(u) * deltav;
var deltavsize = Mathf.Sqrt((float)(deltav[1] * deltav[1] + deltav[2] * deltav[2])); var deltavsize = Mathf.Sqrt((float)(deltav[1] * deltav[1] + deltav[2] * deltav[2]));
deltav = atmp / deltavsize * deltav; deltav = atmp / deltavsize * deltav;
deltav[0] = Constants.Gamma(atmp) * Constants.c; deltav[0] = Constants.Gamma(atmp) * Constants.c;
deltav[1] *= Constants.Gamma(atmp); deltav[1] *= Constants.Gamma(atmp);
deltav[2] *= Constants.Gamma(atmp); deltav[2] *= Constants.Gamma(atmp);
deltav = Constants.BoostMatrix(-u) * deltav; deltav = Constants.BoostMatrix(-u) * deltav;
} }
else else
{ {
var deltavsize = Mathf.Sqrt((float)(deltav[1] * deltav[1] + deltav[2] * deltav[2])); var deltavsize = Mathf.Sqrt((float)(deltav[1] * deltav[1] + deltav[2] * deltav[2]));
deltav = atmp / deltavsize * deltav; deltav = atmp / deltavsize * deltav;
deltav[0] = Constants.Gamma(atmp) * Constants.c; deltav[0] = Constants.Gamma(atmp) * Constants.c;
deltav[1] *= Constants.Gamma(atmp); deltav[1] *= Constants.Gamma(atmp);
deltav[2] *= Constants.Gamma(atmp); deltav[2] *= Constants.Gamma(atmp);
} }
var tt = deltav[0] / Constants.c; var tt = deltav[0] / Constants.c;
Vector3 finaldeltav = new Vector3((float)(deltav[1] / tt), 0.0f, (float)(deltav[2] / tt)); Vector3 finaldeltav = new Vector3((float)(deltav[1] / tt), 0.0f, (float)(deltav[2] / tt));
levelManager.player.v = finaldeltav; levelManager.player.v = finaldeltav;
var prevdistance = (dest var prevdistance = (dest
+ (new Vector3(Background.transform.position.x, 0, Background.transform.position.z)) + (new Vector3(Background.transform.position.x, 0, Background.transform.position.z))
- (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z))); - (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z)));
yield return new WaitForFixedUpdate(); yield return new WaitForFixedUpdate();
while (true) while (true)
{ {
var distanceleft = (dest var distanceleft = (dest
+ (new Vector3(Background.transform.position.x, 0, Background.transform.position.z)) + (new Vector3(Background.transform.position.x, 0, Background.transform.position.z))
- (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z))); - (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z)));
if (distanceleft.magnitude - prevdistance.magnitude >= 0.0f) if (distanceleft.magnitude - prevdistance.magnitude >= 0.0f)
break; break;
prevdistance = distanceleft; prevdistance = distanceleft;
yield return new WaitForFixedUpdate(); yield return new WaitForFixedUpdate();
}*/ }*/
/* /*
var offsetstartpos = new Vector3(Background.transform.position.x, 0, Background.transform.position.z); var offsetstartpos = new Vector3(Background.transform.position.x, 0, Background.transform.position.z);
var startpos = new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z); var startpos = new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z);
acceleration = acceleration.normalized; acceleration = acceleration.normalized;
var deltat = Time.fixedDeltaTime * tinterval; var deltat = Time.fixedDeltaTime * tinterval;
var v = square.GetPathVelocity(i); var v = square.GetPathVelocity(i);
acceleration = (float)((Constants.c / deltat) * MathNet.Numerics.Trig.Asinh(v * Constants.Gamma(v * Constants.c))) * acceleration; acceleration = (float)((Constants.c / deltat) * MathNet.Numerics.Trig.Asinh(v * Constants.Gamma(v * Constants.c))) * acceleration;
// acceleration required to accelerate to v in deltat seconds: see https://en.wikiversity.org/wiki/Theory_of_relativity/Rindler_coordinates // acceleration required to accelerate to v in deltat seconds: see https://en.wikiversity.org/wiki/Theory_of_relativity/Rindler_coordinates
var startv = levelManager.player.v; var startv = levelManager.player.v;
levelManager.player.alpha = acceleration; levelManager.player.alpha = acceleration;
for (var j = 0; j < tinterval; ++j) for (var j = 0; j < tinterval; ++j)
{ {
var tmp = (dest var tmp = (dest
+ (new Vector3(Background.transform.position.x, 0, Background.transform.position.z)) + (new Vector3(Background.transform.position.x, 0, Background.transform.position.z))
- (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z))); - (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z)));
yield return new WaitForFixedUpdate(); yield return new WaitForFixedUpdate();
} }
levelManager.player.alpha = new Vector3(0, 0, 0); levelManager.player.alpha = new Vector3(0, 0, 0);
var offsetnewpos = new Vector3(Background.transform.position.x, 0, Background.transform.position.z); var offsetnewpos = new Vector3(Background.transform.position.x, 0, Background.transform.position.z);
var newpos = new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z); var newpos = new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z);
var posdiff = newpos - startpos; var posdiff = newpos - startpos;
var offset = offsetnewpos - offsetstartpos; var offset = offsetnewpos - offsetstartpos;
posdiff = posdiff - offset; posdiff = posdiff - offset;
while(true) while(true)
{ {
var tmp = (dest var tmp = (dest
+ (new Vector3(Background.transform.position.x, 0, Background.transform.position.z)) + (new Vector3(Background.transform.position.x, 0, Background.transform.position.z))
- (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z))); - (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z)));
if (tmp.magnitude - posdiff.magnitude < 0.0f) if (tmp.magnitude - posdiff.magnitude < 0.0f)
break; break;
yield return new WaitForFixedUpdate(); yield return new WaitForFixedUpdate();
} }
acceleration = -acceleration; acceleration = -acceleration;
levelManager.player.alpha = acceleration; levelManager.player.alpha = acceleration;
for (var j = 0; j < tinterval; ++j) for (var j = 0; j < tinterval; ++j)
{ {
yield return new WaitForFixedUpdate(); yield return new WaitForFixedUpdate();
} }
levelManager.player.alpha = new Vector3(0, 0, 0); levelManager.player.alpha = new Vector3(0, 0, 0);
*/ */
levelManager.player.v = u; levelManager.player.v = u;
levelManager.player.transform.position = new Vector3(startpos.x + finaldeltax.x levelManager.player.transform.position = new Vector3(startpos.x + finaldeltax.x
, levelManager.player.transform.position.y , levelManager.player.transform.position.y
, startpos.z + finaldeltax.z); , startpos.z + finaldeltax.z);
i++; i++;
} }
Background.Toggle = true; Background.Toggle = true;
} }
public void DeletePathsAfterNthPath(int n) public void DeletePathsAfterNthPath(int n)
{ {
square.pathList.RemoveRange(n, _pathRenderer.positionCount - n); square.pathList.RemoveRange(n, _pathRenderer.positionCount - n);
square.pathVelocity.RemoveRange(n, _pathRenderer.positionCount - n); square.pathVelocity.RemoveRange(n, _pathRenderer.positionCount - n);
for (int i = 0; i < transform.childCount; i++) for (int i = 0; i < transform.childCount; i++)
{ {
if (i + 1 >= n) Destroy(transform.GetChild(i).gameObject); if (i + 1 >= n) Destroy(transform.GetChild(i).gameObject);
} }
_pathRenderer.positionCount = square.pathList.Count(); _pathRenderer.positionCount = square.pathList.Count();
} }
} }
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using System; using System;
using System.Linq; using System.Linq;
public class Square : FlatLandObject public class Square : FlatLandObject
{ {
public List<Vector3> pathList = new List<Vector3>(); public List<Vector3> pathList = new List<Vector3>();
public List<float> pathVelocity = new List<float>(); public List<float> pathVelocity = new List<float>();
private float _zPosition => transform.position.z; private float _zPosition => transform.position.z;
private float PlayerVelocity; private float PlayerVelocity;
public Vector3 GetNthPath(int n) // Get a path from (n)th destination to (n+1)th destination. public Vector3 GetNthPath(int n) // Get a path from (n)th destination to (n+1)th destination.
{ {
return pathList[n + 1] - pathList[n]; return pathList[n + 1] - pathList[n];
} }
public float GetTangent(Vector3 v) public float GetTangent(Vector3 v)
{ {
return v.y / v.x; return v.y / v.x;
} }
public Vector3 GetDestPoint(int n) public Vector3 GetDestPoint(int n)
{ {
return pathList[n+1]; return pathList[n+1];
} }
public float GetPathVelocity(int n) public float GetPathVelocity(int n)
{ {
return pathVelocity[n + 1]; return pathVelocity[n + 1];
} }
} }
\ No newline at end of file
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using System; using System;
using System.Linq; using System.Linq;
public class UIManager : MonoBehaviour public class UIManager : MonoBehaviour
{ {
[SerializeField] [SerializeField]
Square square; Square square;
[SerializeField] [SerializeField]
Camera playercamera; Camera playercamera;
[SerializeField] [SerializeField]
LogScaleSlider velocityslider; LogScaleSlider velocityslider;
[SerializeField] [SerializeField]
LogScaleSlider accelslider; LogScaleSlider accelslider;
public Canvas canvas; public Canvas canvas;
public Text mytime; public Text mytime;
//public Planemovement clock1; //public Planemovement clock1;
//public Planemovement clock2; //public Planemovement clock2;
//public Text clock1time; //public Text clock1time;
//public Text clock2time; //public Text clock2time;
public Text wintext; public Text wintext;
public GameObject _pathUI; public GameObject _pathUI;
public LevelManager levelManager; public LevelManager levelManager;
public PathRenderer pathRenderer; public PathRenderer pathRenderer;
private int prevSelectPathNum = -1; private int prevSelectPathNum = -1;
private Text pathName; private Text pathName;
private Text pathVelocity; private Text pathVelocity;
private Vector3 middlePoint; private Vector3 middlePoint;
private Vector3 canvasSize; private Vector3 canvasSize;
private int sliderflag = 0; private int sliderflag = 0;
GraphicRaycaster gr; GraphicRaycaster gr;
PointerEventData ped; PointerEventData ped;
// Start is called before the first frame update // Start is called before the first frame update
void Start() void Start()
{ {
_pathUI.SetActive(false); _pathUI.SetActive(false);
pathName = _pathUI.transform.Find("Name").GetComponent<Text>(); pathName = _pathUI.transform.Find("Name").GetComponent<Text>();
pathVelocity = _pathUI.transform.Find("Velocity").GetComponent<Text>(); pathVelocity = _pathUI.transform.Find("Velocity").GetComponent<Text>();
middlePoint = _pathUI.transform.position; middlePoint = _pathUI.transform.position;
canvasSize = new Vector3(Screen.width, Screen.height, 0); canvasSize = new Vector3(Screen.width, Screen.height, 0);
gr = canvas.GetComponent<GraphicRaycaster>(); gr = canvas.GetComponent<GraphicRaycaster>();
ped = new PointerEventData(null); ped = new PointerEventData(null);
} }
// Update is called once per frame // Update is called once per frame
void Update() void Update()
{ {
mytime.text = levelManager.player.time.ToString() + " s"; mytime.text = levelManager.player.time.ToString() + " s";
//clock1time.text = clock1.GetTime().ToString() + " s"; //clock1time.text = clock1.GetTime().ToString() + " s";
//clock2time.text = clock2.GetTime().ToString() + " s"; //clock2time.text = clock2.GetTime().ToString() + " s";
if(levelManager.winstate) if(levelManager.winstate)
{ {
wintext.gameObject.SetActive(true); wintext.gameObject.SetActive(true);
} }
if (Input.GetMouseButtonDown(0)) if (Input.GetMouseButtonDown(0))
{ {
ped.position = Input.mousePosition; ped.position = Input.mousePosition;
List<RaycastResult> results = new List<RaycastResult>(); List<RaycastResult> results = new List<RaycastResult>();
gr.Raycast(ped, results); gr.Raycast(ped, results);
bool isIgnored = true; bool isIgnored = true;
//ui 클릭시. //ui 클릭시.
foreach (RaycastResult re in results) foreach (RaycastResult re in results)
{ {
GameObject obj = re.gameObject; GameObject obj = re.gameObject;
//panel만 있는지 검사. //panel만 있는지 검사.
isIgnored &= (obj.tag == "ignored"); isIgnored &= (obj.tag == "ignored");
//Debug.Log(obj); //Debug.Log(obj);
//슬라이더일때 //슬라이더일때
if (obj.tag == "VelocitySlider") if (obj.tag == "VelocitySlider")
{ {
sliderflag = 1; sliderflag = 1;
if (_pathUI.activeSelf == true && prevSelectPathNum != -1) if (_pathUI.activeSelf == true && prevSelectPathNum != -1)
{ {
square.pathVelocity[prevSelectPathNum + 1] = velocityslider.GetLogScaleValue(); square.pathVelocity[prevSelectPathNum + 1] = velocityslider.GetLogScaleValue();
pathVelocity.text = "Velocity: " + square.GetPathVelocity(prevSelectPathNum).ToString() + "c"; pathVelocity.text = "Velocity: " + square.GetPathVelocity(prevSelectPathNum).ToString() + "c";
break; break;
} }
} }
} }
if (isIgnored) if (isIgnored)
{ {
//클릭된 ui가 패널만 있을때. //클릭된 ui가 패널만 있을때.
TryFIndPath(); TryFIndPath();
} }
} }
else if(sliderflag == 1 && Input.GetMouseButton(0)) else if(sliderflag == 1 && Input.GetMouseButton(0))
{ {
if (_pathUI.activeSelf == true && prevSelectPathNum != -1) if (_pathUI.activeSelf == true && prevSelectPathNum != -1)
{ {
square.pathVelocity[prevSelectPathNum + 1] = velocityslider.GetLogScaleValue(); square.pathVelocity[prevSelectPathNum + 1] = velocityslider.GetLogScaleValue();
pathVelocity.text = "Velocity: " + square.GetPathVelocity(prevSelectPathNum).ToString() + "c"; pathVelocity.text = "Velocity: " + square.GetPathVelocity(prevSelectPathNum).ToString() + "c";
} }
} }
else if (Input.GetMouseButtonDown(1)) else if (Input.GetMouseButtonDown(1))
{ {
_pathUI.SetActive(false); _pathUI.SetActive(false);
prevSelectPathNum = -1; prevSelectPathNum = -1;
sliderflag = 0; sliderflag = 0;
} }
//player movement //player movement
if(Input.GetKeyDown("w")) if(Input.GetKeyDown("w"))
{ {
var tmp = accelslider.GetLogScaleValue() * (float)Constants.c; var tmp = accelslider.GetLogScaleValue() * (float)Constants.c;
levelManager.player.alpha += new Vector3(0, 0, tmp); levelManager.player.alpha += new Vector3(0, 0, tmp);
} }
else if(Input.GetKeyDown("a")) else if(Input.GetKeyDown("a"))
{ {
var tmp = accelslider.GetLogScaleValue() * (float)Constants.c; var tmp = accelslider.GetLogScaleValue() * (float)Constants.c;
levelManager.player.alpha += new Vector3(-tmp, 0, 0); levelManager.player.alpha += new Vector3(-tmp, 0, 0);
} }
else if(Input.GetKeyDown("s")) else if(Input.GetKeyDown("s"))
{ {
var tmp = accelslider.GetLogScaleValue() * (float)Constants.c; var tmp = accelslider.GetLogScaleValue() * (float)Constants.c;
levelManager.player.alpha += new Vector3(0, 0, -tmp); levelManager.player.alpha += new Vector3(0, 0, -tmp);
} }
else if(Input.GetKeyDown("d")) else if(Input.GetKeyDown("d"))
{ {
var tmp = accelslider.GetLogScaleValue() * (float)Constants.c; var tmp = accelslider.GetLogScaleValue() * (float)Constants.c;
levelManager.player.alpha += new Vector3(tmp, 0, 0); levelManager.player.alpha += new Vector3(tmp, 0, 0);
} }
if (Input.GetKeyUp("w")) if (Input.GetKeyUp("w"))
{ {
levelManager.player.alpha -= new Vector3(0, 0, levelManager.player.alpha.z); levelManager.player.alpha -= new Vector3(0, 0, levelManager.player.alpha.z);
} }
else if (Input.GetKeyUp("a")) else if (Input.GetKeyUp("a"))
{ {
levelManager.player.alpha -= new Vector3(levelManager.player.alpha.x, 0, 0); levelManager.player.alpha -= new Vector3(levelManager.player.alpha.x, 0, 0);
} }
else if (Input.GetKeyUp("s")) else if (Input.GetKeyUp("s"))
{ {
levelManager.player.alpha -= new Vector3(0, 0, levelManager.player.alpha.z); levelManager.player.alpha -= new Vector3(0, 0, levelManager.player.alpha.z);
} }
else if (Input.GetKeyUp("d")) else if (Input.GetKeyUp("d"))
{ {
levelManager.player.alpha -= new Vector3(levelManager.player.alpha.x, 0, 0); levelManager.player.alpha -= new Vector3(levelManager.player.alpha.x, 0, 0);
} }
} }
private Vector3 getMouseClickPosition(RaycastHit hit) private Vector3 getMouseClickPosition(RaycastHit hit)
{ {
var tmp = Camera.main.WorldToScreenPoint(hit.point); var tmp = Camera.main.WorldToScreenPoint(hit.point);
return tmp - canvasSize * 0.5f + middlePoint; return tmp - canvasSize * 0.5f + middlePoint;
} }
private Vector3 getDestVector(Vector3 hitVector1, Vector3 hitVector2, int pathNum) private Vector3 getDestVector(Vector3 hitVector1, Vector3 hitVector2, int pathNum)
{ {
hitVector1.z = 0; hitVector1.z = 0;
var v = square.GetDestPoint(pathNum) - hitVector2; var v = square.GetDestPoint(pathNum) - hitVector2;
var k = hitVector1.magnitude / hitVector2.magnitude; var k = hitVector1.magnitude / hitVector2.magnitude;
return k * v; return k * v;
} }
private void updatePathInfo(GameObject obj, int pathNum) private void updatePathInfo(GameObject obj, int pathNum)
{ {
pathName.text = obj.name; pathName.text = obj.name;
pathVelocity.text = "Velocity: " + square.GetPathVelocity(pathNum).ToString() + "c"; pathVelocity.text = "Velocity: " + square.GetPathVelocity(pathNum).ToString() + "c";
velocityslider.UpdateValuebyVelocity(square.GetPathVelocity(pathNum)); velocityslider.UpdateValuebyVelocity(square.GetPathVelocity(pathNum));
} }
private void TryFIndPath() private void TryFIndPath()
{ {
RaycastHit hit1; RaycastHit hit1;
RaycastHit hit2; RaycastHit hit2;
var ray = Camera.main.ScreenPointToRay(Input.mousePosition); var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit1)) if (Physics.Raycast(ray, out hit1))
{ {
ray = playercamera.ViewportPointToRay(hit1.textureCoord); ray = playercamera.ViewportPointToRay(hit1.textureCoord);
if (Physics.Raycast(ray, out hit2)) if (Physics.Raycast(ray, out hit2))
{ {
var obj = hit2.collider.gameObject; var obj = hit2.collider.gameObject;
Debug.Log(obj.tag); Debug.Log(obj.tag);
if (obj.tag == "path") if (obj.tag == "path")
{ {
int pathNum = int.Parse(obj.name.Substring(13)); int pathNum = int.Parse(obj.name.Substring(13));
if (pathNum != prevSelectPathNum) if (pathNum != prevSelectPathNum)
{ {
updatePathInfo(obj, pathNum); updatePathInfo(obj, pathNum);
var mouseClickPosition = getMouseClickPosition(hit1); var mouseClickPosition = getMouseClickPosition(hit1);
var v = getDestVector(mouseClickPosition - middlePoint, new Vector3(hit2.point.x, hit2.point.z, 0.0f), pathNum); var v = getDestVector(mouseClickPosition - middlePoint, new Vector3(hit2.point.x, hit2.point.z, 0.0f), pathNum);
_pathUI.transform.position = mouseClickPosition + v; _pathUI.transform.position = mouseClickPosition + v;
_pathUI.SetActive(true); _pathUI.SetActive(true);
prevSelectPathNum = pathNum; prevSelectPathNum = pathNum;
} }
} }
else else
{ {
_pathUI.SetActive(false); _pathUI.SetActive(false);
prevSelectPathNum = -1; prevSelectPathNum = -1;
sliderflag = 0; sliderflag = 0;
} }
} }
} }
} }
/// <summary> /// <summary>
/// 현재 지정된 path를 시작합니다. /// 현재 지정된 path를 시작합니다.
/// </summary> /// </summary>
public void PathStart() public void PathStart()
{ {
pathRenderer.Background.Toggle = false; pathRenderer.Background.Toggle = false;
StartCoroutine(pathRenderer._StartMovingPath(prevSelectPathNum)); StartCoroutine(pathRenderer._StartMovingPath(prevSelectPathNum));
} }
public void PathCancel() public void PathCancel()
{ {
pathRenderer.DeletePathsAfterNthPath(prevSelectPathNum + 1); pathRenderer.DeletePathsAfterNthPath(prevSelectPathNum + 1);
_pathUI.SetActive(false); _pathUI.SetActive(false);
prevSelectPathNum = -1; prevSelectPathNum = -1;
} }
public void OnDoubleClicked() public void OnDoubleClicked()
{ {
try try
{ {
if (levelManager.player.isInertial()) if (levelManager.player.isInertial())
{ {
RaycastHit hit; RaycastHit hit;
var ray = Camera.main.ScreenPointToRay(Input.mousePosition); var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit)) if (Physics.Raycast(ray, out hit))
{ {
ray = playercamera.ViewportPointToRay(hit.textureCoord); ray = playercamera.ViewportPointToRay(hit.textureCoord);
if (Physics.Raycast(ray, out hit)) if (Physics.Raycast(ray, out hit))
{ {
levelManager.player.MoveInfinitelyToAbPosition(pathRenderer.transform.InverseTransformPoint(hit.point), velocityslider.GetLogScaleValue()); levelManager.player.MoveInfinitelyToAbPosition(pathRenderer.transform.InverseTransformPoint(hit.point), velocityslider.GetLogScaleValue());
//levelManager.player.MoveToAbPosition(hit.point, velocityslider.GetLogScaleValue()); //levelManager.player.MoveToAbPosition(hit.point, velocityslider.GetLogScaleValue());
//Debug.Log(velocityslider.GetLogScaleValue() * (float)Constants.c); //Debug.Log(velocityslider.GetLogScaleValue() * (float)Constants.c);
//Debug.Log(hit.point); //Debug.Log(hit.point);
} }
} }
} }
} }
catch(Exception e) catch(Exception e)
{ {
Debug.Log(e); Debug.Log(e);
} }
} }
} }
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!30 &1
GraphicsSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_Deferred:
m_Mode: 1
m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
m_DeferredReflections:
m_Mode: 1
m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
m_ScreenSpaceShadows:
m_Mode: 1
m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
m_LegacyDeferred:
m_Mode: 1
m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
m_DepthNormals:
m_Mode: 1
m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
m_MotionVectors:
m_Mode: 1
m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
m_LightHalo:
m_Mode: 1
m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
m_LensFlare:
m_Mode: 1
m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
m_AlwaysIncludedShaders:
- {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
m_PreloadedShaders: []
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
type: 0}
m_CustomRenderPipeline: {fileID: 0}
m_TransparencySortMode: 0
m_TransparencySortAxis: {x: 0, y: 0, z: 1}
m_DefaultRenderingPath: 1
m_DefaultMobileRenderingPath: 1
m_TierSettings:
- serializedVersion: 5
m_BuildTarget: 1
m_Tier: 0
m_Settings:
standardShaderQuality: 2
renderingPath: 1
hdrMode: 1
realtimeGICPUUsage: 25
useReflectionProbeBoxProjection: 1
useReflectionProbeBlending: 1
useHDR: 0
useDetailNormalMap: 1
useCascadedShadowMaps: 1
prefer32BitShadowMaps: 0
enableLPPV: 1
useDitherMaskForAlphaBlendedShadows: 1
m_Automatic: 0
- serializedVersion: 5
m_BuildTarget: 1
m_Tier: 1
m_Settings:
standardShaderQuality: 2
renderingPath: 1
hdrMode: 1
realtimeGICPUUsage: 25
useReflectionProbeBoxProjection: 1
useReflectionProbeBlending: 1
useHDR: 0
useDetailNormalMap: 1
useCascadedShadowMaps: 1
prefer32BitShadowMaps: 0
enableLPPV: 1
useDitherMaskForAlphaBlendedShadows: 1
m_Automatic: 0
- serializedVersion: 5
m_BuildTarget: 1
m_Tier: 2
m_Settings:
standardShaderQuality: 2
renderingPath: 1
hdrMode: 1
realtimeGICPUUsage: 50
useReflectionProbeBoxProjection: 1
useReflectionProbeBlending: 1
useHDR: 0
useDetailNormalMap: 1
useCascadedShadowMaps: 1
prefer32BitShadowMaps: 0
enableLPPV: 1
useDitherMaskForAlphaBlendedShadows: 1
m_Automatic: 0
m_LightmapStripping: 0
m_FogStripping: 0
m_InstancingStripping: 0
m_LightmapKeepPlain: 1
m_LightmapKeepDirCombined: 1
m_LightmapKeepDynamicPlain: 1
m_LightmapKeepDynamicDirCombined: 1
m_LightmapKeepShadowMask: 1
m_LightmapKeepSubtractive: 1
m_FogKeepLinear: 1
m_FogKeepExp: 1
m_FogKeepExp2: 1
m_AlbedoSwatchInfos: []
m_LightsUseLinearIntensity: 0
m_LightsUseColorTemperature: 0
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!129 &1
PlayerSettings:
m_ObjectHideFlags: 0
serializedVersion: 18
productGUID: b7f5cb2eae1198541a966c1c48e71736
AndroidProfiler: 0
AndroidFilterTouchesWhenObscured: 0
AndroidEnableSustainedPerformanceMode: 0
defaultScreenOrientation: 4
targetDevice: 2
useOnDemandResources: 0
accelerometerFrequency: 60
companyName: DefaultCompany
productName: FlatLand
defaultCursor: {fileID: 0}
cursorHotspot: {x: 0, y: 0}
m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
m_ShowUnitySplashScreen: 1
m_ShowUnitySplashLogo: 1
m_SplashScreenOverlayOpacity: 1
m_SplashScreenAnimation: 1
m_SplashScreenLogoStyle: 1
m_SplashScreenDrawMode: 0
m_SplashScreenBackgroundAnimationZoom: 1
m_SplashScreenLogoAnimationZoom: 1
m_SplashScreenBackgroundLandscapeAspect: 1
m_SplashScreenBackgroundPortraitAspect: 1
m_SplashScreenBackgroundLandscapeUvs:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
m_SplashScreenBackgroundPortraitUvs:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
m_SplashScreenLogos: []
m_VirtualRealitySplashScreen: {fileID: 0}
m_HolographicTrackingLossScreen: {fileID: 0}
defaultScreenWidth: 1024
defaultScreenHeight: 768
defaultScreenWidthWeb: 960
defaultScreenHeightWeb: 600
m_StereoRenderingPath: 0
m_ActiveColorSpace: 0
m_MTRendering: 1
m_StackTraceTypes: 010000000100000001000000010000000100000001000000
iosShowActivityIndicatorOnLoading: -1
androidShowActivityIndicatorOnLoading: -1
displayResolutionDialog: 0
iosUseCustomAppBackgroundBehavior: 0
iosAllowHTTPDownload: 1
allowedAutorotateToPortrait: 1
allowedAutorotateToPortraitUpsideDown: 1
allowedAutorotateToLandscapeRight: 1
allowedAutorotateToLandscapeLeft: 1
useOSAutorotation: 1
use32BitDisplayBuffer: 1
preserveFramebufferAlpha: 0
disableDepthAndStencilBuffers: 0
androidStartInFullscreen: 1
androidRenderOutsideSafeArea: 1
androidUseSwappy: 0
androidBlitType: 0
defaultIsNativeResolution: 1
macRetinaSupport: 1
runInBackground: 1
captureSingleScreen: 0
muteOtherAudioSources: 0
Prepare IOS For Recording: 0
Force IOS Speakers When Recording: 0
deferSystemGesturesMode: 0
hideHomeButton: 0
submitAnalytics: 1
usePlayerLog: 1
bakeCollisionMeshes: 0
forceSingleInstance: 0
useFlipModelSwapchain: 1
resizableWindow: 0
useMacAppStoreValidation: 0
macAppStoreCategory: public.app-category.games
gpuSkinning: 0
graphicsJobs: 0
xboxPIXTextureCapture: 0
xboxEnableAvatar: 0
xboxEnableKinect: 0
xboxEnableKinectAutoTracking: 0
xboxEnableFitness: 0
visibleInBackground: 1
allowFullscreenSwitch: 1
graphicsJobMode: 0
fullscreenMode: 1
xboxSpeechDB: 0
xboxEnableHeadOrientation: 0
xboxEnableGuest: 0
xboxEnablePIXSampling: 0
metalFramebufferOnly: 0
xboxOneResolution: 0
xboxOneSResolution: 0
xboxOneXResolution: 3
xboxOneMonoLoggingLevel: 0
xboxOneLoggingLevel: 1
xboxOneDisableEsram: 0
xboxOnePresentImmediateThreshold: 0
switchQueueCommandMemory: 0
switchQueueControlMemory: 16384
switchQueueComputeMemory: 262144
switchNVNShaderPoolsGranularity: 33554432
switchNVNDefaultPoolsGranularity: 16777216
switchNVNOtherPoolsGranularity: 16777216
vulkanEnableSetSRGBWrite: 0
m_SupportedAspectRatios:
4:3: 1
5:4: 1
16:10: 1
16:9: 1
Others: 1
bundleVersion: 0.1
preloadedAssets: []
metroInputSource: 0
wsaTransparentSwapchain: 0
m_HolographicPauseOnTrackingLoss: 1
xboxOneDisableKinectGpuReservation: 1
xboxOneEnable7thCore: 1
vrSettings:
cardboard:
depthFormat: 0
enableTransitionView: 0
daydream:
depthFormat: 0
useSustainedPerformanceMode: 0
enableVideoLayer: 0
useProtectedVideoMemory: 0
minimumSupportedHeadTracking: 0
maximumSupportedHeadTracking: 1
hololens:
depthFormat: 1
depthBufferSharingEnabled: 1
lumin:
depthFormat: 0
frameTiming: 2
enableGLCache: 0
glCacheMaxBlobSize: 524288
glCacheMaxFileSize: 8388608
oculus:
sharedDepthBuffer: 1
dashSupport: 1
lowOverheadMode: 0
enable360StereoCapture: 0
isWsaHolographicRemotingEnabled: 0
protectGraphicsMemory: 0
enableFrameTimingStats: 0
useHDRDisplay: 0
m_ColorGamuts: 00000000
targetPixelDensity: 30
resolutionScalingMode: 0
androidSupportedAspectRatio: 1
androidMaxAspectRatio: 2.1
applicationIdentifier:
Standalone: com.Company.ProductName
buildNumber: {}
AndroidBundleVersionCode: 1
AndroidMinSdkVersion: 16
AndroidTargetSdkVersion: 0
AndroidPreferredInstallLocation: 1
aotOptions:
stripEngineCode: 1
iPhoneStrippingLevel: 0
iPhoneScriptCallOptimization: 0
ForceInternetPermission: 0
ForceSDCardPermission: 0
CreateWallpaper: 0
APKExpansionFiles: 0
keepLoadedShadersAlive: 0
StripUnusedMeshComponents: 1
VertexChannelCompressionMask: 4054
iPhoneSdkVersion: 988
iOSTargetOSVersionString: 9.0
tvOSSdkVersion: 0
tvOSRequireExtendedGameController: 0
tvOSTargetOSVersionString: 9.0
uIPrerenderedIcon: 0
uIRequiresPersistentWiFi: 0
uIRequiresFullScreen: 1
uIStatusBarHidden: 1
uIExitOnSuspend: 0
uIStatusBarStyle: 0
iPhoneSplashScreen: {fileID: 0}
iPhoneHighResSplashScreen: {fileID: 0}
iPhoneTallHighResSplashScreen: {fileID: 0}
iPhone47inSplashScreen: {fileID: 0}
iPhone55inPortraitSplashScreen: {fileID: 0}
iPhone55inLandscapeSplashScreen: {fileID: 0}
iPhone58inPortraitSplashScreen: {fileID: 0}
iPhone58inLandscapeSplashScreen: {fileID: 0}
iPadPortraitSplashScreen: {fileID: 0}
iPadHighResPortraitSplashScreen: {fileID: 0}
iPadLandscapeSplashScreen: {fileID: 0}
iPadHighResLandscapeSplashScreen: {fileID: 0}
iPhone65inPortraitSplashScreen: {fileID: 0}
iPhone65inLandscapeSplashScreen: {fileID: 0}
iPhone61inPortraitSplashScreen: {fileID: 0}
iPhone61inLandscapeSplashScreen: {fileID: 0}
appleTVSplashScreen: {fileID: 0}
appleTVSplashScreen2x: {fileID: 0}
tvOSSmallIconLayers: []
tvOSSmallIconLayers2x: []
tvOSLargeIconLayers: []
tvOSLargeIconLayers2x: []
tvOSTopShelfImageLayers: []
tvOSTopShelfImageLayers2x: []
tvOSTopShelfImageWideLayers: []
tvOSTopShelfImageWideLayers2x: []
iOSLaunchScreenType: 0
iOSLaunchScreenPortrait: {fileID: 0}
iOSLaunchScreenLandscape: {fileID: 0}
iOSLaunchScreenBackgroundColor:
serializedVersion: 2
rgba: 0
iOSLaunchScreenFillPct: 100
iOSLaunchScreenSize: 100
iOSLaunchScreenCustomXibPath:
iOSLaunchScreeniPadType: 0
iOSLaunchScreeniPadImage: {fileID: 0}
iOSLaunchScreeniPadBackgroundColor:
serializedVersion: 2
rgba: 0
iOSLaunchScreeniPadFillPct: 100
iOSLaunchScreeniPadSize: 100
iOSLaunchScreeniPadCustomXibPath:
iOSUseLaunchScreenStoryboard: 0
iOSLaunchScreenCustomStoryboardPath:
iOSDeviceRequirements: []
iOSURLSchemes: []
iOSBackgroundModes: 0
iOSMetalForceHardShadows: 0
metalEditorSupport: 1
metalAPIValidation: 1
iOSRenderExtraFrameOnPause: 0
appleDeveloperTeamID:
iOSManualSigningProvisioningProfileID:
tvOSManualSigningProvisioningProfileID:
iOSManualSigningProvisioningProfileType: 0
tvOSManualSigningProvisioningProfileType: 0
appleEnableAutomaticSigning: 0
iOSRequireARKit: 0
iOSAutomaticallyDetectAndAddCapabilities: 1
appleEnableProMotion: 0
clonedFromGUID: 5f34be1353de5cf4398729fda238591b
templatePackageId: com.unity.template.2d@2.3.2
templateDefaultScene: Assets/Scenes/SampleScene.unity
AndroidTargetArchitectures: 1
AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0}
AndroidKeystoreName: '{inproject}: '
AndroidKeyaliasName:
AndroidBuildApkPerCpuArchitecture: 0
AndroidTVCompatibility: 0
AndroidIsGame: 1
AndroidEnableTango: 0
androidEnableBanner: 1
androidUseLowAccuracyLocation: 0
androidUseCustomKeystore: 0
m_AndroidBanners:
- width: 320
height: 180
banner: {fileID: 0}
androidGamepadSupportLevel: 0
AndroidValidateAppBundleSize: 1
AndroidAppBundleSizeToValidate: 150
resolutionDialogBanner: {fileID: 0}
m_BuildTargetIcons: []
m_BuildTargetPlatformIcons: []
m_BuildTargetBatching: []
m_BuildTargetGraphicsAPIs:
- m_BuildTarget: AndroidPlayer
m_APIs: 150000000b000000
m_Automatic: 0
m_BuildTargetVRSettings: []
openGLRequireES31: 0
openGLRequireES31AEP: 0
openGLRequireES32: 0
vuforiaEnabled: 0
m_TemplateCustomTags: {}
mobileMTRendering:
Android: 1
iPhone: 1
tvOS: 1
m_BuildTargetGroupLightmapEncodingQuality: []
m_BuildTargetGroupLightmapSettings: []
playModeTestRunnerEnabled: 0
runPlayModeTestAsEditModeTest: 0
actionOnDotNetUnhandledException: 1
enableInternalProfiler: 0
logObjCUncaughtExceptions: 1
enableCrashReportAPI: 0
cameraUsageDescription:
locationUsageDescription:
microphoneUsageDescription:
switchNetLibKey:
switchSocketMemoryPoolSize: 6144
switchSocketAllocatorPoolSize: 128
switchSocketConcurrencyLimit: 14
switchScreenResolutionBehavior: 2
switchUseCPUProfiler: 0
switchApplicationID: 0x01004b9000490000
switchNSODependencies:
switchTitleNames_0:
switchTitleNames_1:
switchTitleNames_2:
switchTitleNames_3:
switchTitleNames_4:
switchTitleNames_5:
switchTitleNames_6:
switchTitleNames_7:
switchTitleNames_8:
switchTitleNames_9:
switchTitleNames_10:
switchTitleNames_11:
switchTitleNames_12:
switchTitleNames_13:
switchTitleNames_14:
switchPublisherNames_0:
switchPublisherNames_1:
switchPublisherNames_2:
switchPublisherNames_3:
switchPublisherNames_4:
switchPublisherNames_5:
switchPublisherNames_6:
switchPublisherNames_7:
switchPublisherNames_8:
switchPublisherNames_9:
switchPublisherNames_10:
switchPublisherNames_11:
switchPublisherNames_12:
switchPublisherNames_13:
switchPublisherNames_14:
switchIcons_0: {fileID: 0}
switchIcons_1: {fileID: 0}
switchIcons_2: {fileID: 0}
switchIcons_3: {fileID: 0}
switchIcons_4: {fileID: 0}
switchIcons_5: {fileID: 0}
switchIcons_6: {fileID: 0}
switchIcons_7: {fileID: 0}
switchIcons_8: {fileID: 0}
switchIcons_9: {fileID: 0}
switchIcons_10: {fileID: 0}
switchIcons_11: {fileID: 0}
switchIcons_12: {fileID: 0}
switchIcons_13: {fileID: 0}
switchIcons_14: {fileID: 0}
switchSmallIcons_0: {fileID: 0}
switchSmallIcons_1: {fileID: 0}
switchSmallIcons_2: {fileID: 0}
switchSmallIcons_3: {fileID: 0}
switchSmallIcons_4: {fileID: 0}
switchSmallIcons_5: {fileID: 0}
switchSmallIcons_6: {fileID: 0}
switchSmallIcons_7: {fileID: 0}
switchSmallIcons_8: {fileID: 0}
switchSmallIcons_9: {fileID: 0}
switchSmallIcons_10: {fileID: 0}
switchSmallIcons_11: {fileID: 0}
switchSmallIcons_12: {fileID: 0}
switchSmallIcons_13: {fileID: 0}
switchSmallIcons_14: {fileID: 0}
switchManualHTML:
switchAccessibleURLs:
switchLegalInformation:
switchMainThreadStackSize: 1048576
switchPresenceGroupId:
switchLogoHandling: 0
switchReleaseVersion: 0
switchDisplayVersion: 1.0.0
switchStartupUserAccount: 0
switchTouchScreenUsage: 0
switchSupportedLanguagesMask: 0
switchLogoType: 0
switchApplicationErrorCodeCategory:
switchUserAccountSaveDataSize: 0
switchUserAccountSaveDataJournalSize: 0
switchApplicationAttribute: 0
switchCardSpecSize: -1
switchCardSpecClock: -1
switchRatingsMask: 0
switchRatingsInt_0: 0
switchRatingsInt_1: 0
switchRatingsInt_2: 0
switchRatingsInt_3: 0
switchRatingsInt_4: 0
switchRatingsInt_5: 0
switchRatingsInt_6: 0
switchRatingsInt_7: 0
switchRatingsInt_8: 0
switchRatingsInt_9: 0
switchRatingsInt_10: 0
switchRatingsInt_11: 0
switchLocalCommunicationIds_0:
switchLocalCommunicationIds_1:
switchLocalCommunicationIds_2:
switchLocalCommunicationIds_3:
switchLocalCommunicationIds_4:
switchLocalCommunicationIds_5:
switchLocalCommunicationIds_6:
switchLocalCommunicationIds_7:
switchParentalControl: 0
switchAllowsScreenshot: 1
switchAllowsVideoCapturing: 1
switchAllowsRuntimeAddOnContentInstall: 0
switchDataLossConfirmation: 0
switchUserAccountLockEnabled: 0
switchSystemResourceMemory: 16777216
switchSupportedNpadStyles: 3
switchNativeFsCacheSize: 32
switchIsHoldTypeHorizontal: 0
switchSupportedNpadCount: 8
switchSocketConfigEnabled: 0
switchTcpInitialSendBufferSize: 32
switchTcpInitialReceiveBufferSize: 64
switchTcpAutoSendBufferSizeMax: 256
switchTcpAutoReceiveBufferSizeMax: 256
switchUdpSendBufferSize: 9
switchUdpReceiveBufferSize: 42
switchSocketBufferEfficiency: 4
switchSocketInitializeEnabled: 1
switchNetworkInterfaceManagerInitializeEnabled: 1
switchPlayerConnectionEnabled: 1
ps4NPAgeRating: 12
ps4NPTitleSecret:
ps4NPTrophyPackPath:
ps4ParentalLevel: 11
ps4ContentID: ED1633-NPXX51362_00-0000000000000000
ps4Category: 0
ps4MasterVersion: 01.00
ps4AppVersion: 01.00
ps4AppType: 0
ps4ParamSfxPath:
ps4VideoOutPixelFormat: 0
ps4VideoOutInitialWidth: 1920
ps4VideoOutBaseModeInitialWidth: 1920
ps4VideoOutReprojectionRate: 60
ps4PronunciationXMLPath:
ps4PronunciationSIGPath:
ps4BackgroundImagePath:
ps4StartupImagePath:
ps4StartupImagesFolder:
ps4IconImagesFolder:
ps4SaveDataImagePath:
ps4SdkOverride:
ps4BGMPath:
ps4ShareFilePath:
ps4ShareOverlayImagePath:
ps4PrivacyGuardImagePath:
ps4NPtitleDatPath:
ps4RemotePlayKeyAssignment: -1
ps4RemotePlayKeyMappingDir:
ps4PlayTogetherPlayerCount: 0
ps4EnterButtonAssignment: 1
ps4ApplicationParam1: 0
ps4ApplicationParam2: 0
ps4ApplicationParam3: 0
ps4ApplicationParam4: 0
ps4DownloadDataSize: 0
ps4GarlicHeapSize: 2048
ps4ProGarlicHeapSize: 2560
playerPrefsMaxSize: 32768
ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
ps4pnSessions: 1
ps4pnPresence: 1
ps4pnFriends: 1
ps4pnGameCustomData: 1
playerPrefsSupport: 0
enableApplicationExit: 0
resetTempFolder: 1
restrictedAudioUsageRights: 0
ps4UseResolutionFallback: 0
ps4ReprojectionSupport: 0
ps4UseAudio3dBackend: 0
ps4SocialScreenEnabled: 0
ps4ScriptOptimizationLevel: 0
ps4Audio3dVirtualSpeakerCount: 14
ps4attribCpuUsage: 0
ps4PatchPkgPath:
ps4PatchLatestPkgPath:
ps4PatchChangeinfoPath:
ps4PatchDayOne: 0
ps4attribUserManagement: 0
ps4attribMoveSupport: 0
ps4attrib3DSupport: 0
ps4attribShareSupport: 0
ps4attribExclusiveVR: 0
ps4disableAutoHideSplash: 0
ps4videoRecordingFeaturesUsed: 0
ps4contentSearchFeaturesUsed: 0
ps4attribEyeToEyeDistanceSettingVR: 0
ps4IncludedModules: []
monoEnv:
splashScreenBackgroundSourceLandscape: {fileID: 0}
splashScreenBackgroundSourcePortrait: {fileID: 0}
blurSplashScreenBackground: 1
spritePackerPolicy:
webGLMemorySize: 16
webGLExceptionSupport: 1
webGLNameFilesAsHashes: 0
webGLDataCaching: 1
webGLDebugSymbols: 0
webGLEmscriptenArgs:
webGLModulesDirectory:
webGLTemplate: APPLICATION:Default
webGLAnalyzeBuildSize: 0
webGLUseEmbeddedResources: 0
webGLCompressionFormat: 1
webGLLinkerTarget: 1
webGLThreadsSupport: 0
webGLWasmStreaming: 0
scriptingDefineSymbols: {}
platformArchitecture: {}
scriptingBackend: {}
il2cppCompilerConfiguration: {}
managedStrippingLevel: {}
incrementalIl2cppBuild: {}
allowUnsafeCode: 0
additionalIl2CppArgs:
scriptingRuntimeVersion: 1
gcIncremental: 0
gcWBarrierValidation: 0
apiCompatibilityLevelPerPlatform: {}
m_RenderingPath: 1
m_MobileRenderingPath: 1
metroPackageName: Template_2D
metroPackageVersion:
metroCertificatePath:
metroCertificatePassword:
metroCertificateSubject:
metroCertificateIssuer:
metroCertificateNotAfter: 0000000000000000
metroApplicationDescription: Template_2D
wsaImages: {}
metroTileShortName:
metroTileShowName: 0
metroMediumTileShowName: 0
metroLargeTileShowName: 0
metroWideTileShowName: 0
metroSupportStreamingInstall: 0
metroLastRequiredScene: 0
metroDefaultTileSize: 1
metroTileForegroundText: 2
metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,
a: 1}
metroSplashScreenUseBackgroundColor: 0
platformCapabilities: {}
metroTargetDeviceFamilies: {}
metroFTAName:
metroFTAFileTypes: []
metroProtocolName:
XboxOneProductId:
XboxOneUpdateKey:
XboxOneSandboxId:
XboxOneContentId:
XboxOneTitleId:
XboxOneSCId:
XboxOneGameOsOverridePath:
XboxOnePackagingOverridePath:
XboxOneAppManifestOverridePath:
XboxOneVersion: 1.0.0.0
XboxOnePackageEncryption: 0
XboxOnePackageUpdateGranularity: 2
XboxOneDescription:
XboxOneLanguage:
- enus
XboxOneCapability: []
XboxOneGameRating: {}
XboxOneIsContentPackage: 0
XboxOneEnableGPUVariability: 1
XboxOneSockets: {}
XboxOneSplashScreen: {fileID: 0}
XboxOneAllowedProductIds: []
XboxOnePersistentLocalStorageSize: 0
XboxOneXTitleMemory: 8
xboxOneScriptCompiler: 1
XboxOneOverrideIdentityName:
vrEditorSettings:
daydream:
daydreamIconForeground: {fileID: 0}
daydreamIconBackground: {fileID: 0}
cloudServicesEnabled:
UNet: 1
luminIcon:
m_Name:
m_ModelFolderPath:
m_PortalFolderPath:
luminCert:
m_CertPath:
m_SignPackage: 1
luminIsChannelApp: 0
luminVersion:
m_VersionCode: 1
m_VersionName:
facebookSdkVersion: 7.9.4
facebookAppId:
facebookCookies: 1
facebookLogging: 1
facebookStatus: 1
facebookXfbml: 0
facebookFrictionlessRequests: 1
apiCompatibilityLevel: 6
cloudProjectId:
framebufferDepthMemorylessMode: 0
projectName:
organizationId:
cloudEnabled: 0
enableNativePlatformBackendsForNewInputSystem: 0
disableOldInputManagerSupport: 0
legacyClampBlendShapeWeights: 0
m_EditorVersion: 2019.2.0f1
m_EditorVersionWithRevision: 2019.2.0f1 (20c1667945cf)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment