Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
curvedflats
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
6
Issues
6
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Flatland
curvedflats
Commits
b78482ab
Commit
b78482ab
authored
Aug 16, 2019
by
17김현학
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Apply .gitignore
parent
30a40c2e
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
752 additions
and
1536 deletions
+752
-1536
.gitignore
.gitignore
+66
-119
PathRenderer.cs
Assets/Scripts/PathRenderer.cs
+392
-392
Square.cs
Assets/Scripts/Square.cs
+32
-32
UIManager.cs
Assets/Scripts/UIManager.cs
+262
-262
GraphicsSettings.asset
ProjectSettings/GraphicsSettings.asset
+0
-108
ProjectSettings.asset
ProjectSettings/ProjectSettings.asset
+0
-621
ProjectVersion.txt
ProjectSettings/ProjectVersion.txt
+0
-2
No files found.
.gitignore
View file @
b78482ab
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
#
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[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
# =============== #
# Unity generated #
# =============== #
Temp/
Obj/
UnityGenerated/
Library/
# ===================================== #
# Visual Studio / MonoDevelop generated #
# ===================================== #
ExportedObj/
.consulo/
*.svd
*.userprefs
*.csproj
*.unityproj
*.sln
*.pidb
*.suo
*.
tmp
*.
sln
*.user
*.userprefs
*.pidb
*.unityproj
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db
# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta
# Unity3D generated file on crash reports
sysinfo.txt
# Builds
*.apk
*.unitypackage
# Crashlytics generated file
crashlytics-build.properties
# ============ #
# OS generated #
# ============ #
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db
GraphicsSettings.asset
ProjectSettings.asset
ProjectVersion.txt
\ No newline at end of file
Assets/Scripts/PathRenderer.cs
View file @
b78482ab
using
System.Collections
;
using
System.Collections.Generic
;
using
UnityEngine
;
using
System.Linq
;
using
UnityEngine.UI
;
using
System
;
using
MathNet.Numerics.LinearAlgebra
;
using
MathNet.Numerics.LinearAlgebra.Double
;
public
class
PathRenderer
:
MonoBehaviour
{
[
SerializeField
]
Square
square
;
[
SerializeField
]
GameObject
PathColliderPrefab
;
[
SerializeField
]
Camera
playercamera
;
[
SerializeField
]
LevelManager
levelManager
;
[
SerializeField
]
BackgroundMovement
background
;
[
SerializeField
]
LogScaleSlider
velocityslider
;
LineRenderer
_pathRenderer
;
float
_originalPathColliderY
;
public
BackgroundMovement
Background
{
get
{
return
background
;
}
set
{
background
=
value
;
}
}
// Start is called before the first frame update
void
Start
()
{
_originalPathColliderY
=
PathColliderPrefab
.
transform
.
localScale
.
y
/
2
;
_pathRenderer
=
GetComponent
<
LineRenderer
>();
_ResetPaths
();
}
// Update is called once per frame
void
Update
()
{
if
(
Input
.
GetMouseButtonDown
(
1
)
&&
levelManager
.
player
.
isInertial
())
{
RaycastHit
hit
;
var
ray
=
Camera
.
main
.
ScreenPointToRay
(
Input
.
mousePosition
);
if
(
Physics
.
Raycast
(
ray
,
out
hit
))
{
ray
=
playercamera
.
ViewportPointToRay
(
hit
.
textureCoord
);
if
(
Physics
.
Raycast
(
ray
,
out
hit
))
{
if
(
Input
.
GetKey
(
KeyCode
.
LeftShift
))
{
_DrawMorePath
(
hit
.
point
);
}
else
{
_DrawOnePath
(
hit
.
point
);
}
}
}
/*if (Physics.Raycast(ray, out hit))
{
if (Input.GetKey(KeyCode.LeftShift))
{
_DrawMorePath(hit.point);
}
else
{
_DrawOnePath(hit.point);
}
}*/
}
}
private
void
_DrawOnePath
(
Vector3
point
)
{
_ResetPaths
();
square
.
pathList
[
0
]
=
transform
.
localPosition
;
square
.
pathVelocity
[
0
]
=
0.0f
;
var
tmp
=
transform
.
InverseTransformPoint
(
point
);
square
.
pathList
[
1
]
=
new
Vector3
(
tmp
.
x
,
tmp
.
y
,
0.0f
);
square
.
pathVelocity
[
1
]
=
velocityslider
.
GetLogScaleValue
();
_pathRenderer
.
SetPositions
(
square
.
pathList
.
ToArray
());
_InstantiatePathCollider
(
0
);
}
private
void
_ResetPaths
()
{
_pathRenderer
.
positionCount
=
2
;
square
.
pathList
.
Clear
();
square
.
pathVelocity
.
Clear
();
square
.
pathList
.
Add
(
transform
.
localPosition
);
square
.
pathVelocity
.
Add
(
0.0f
);
square
.
pathList
.
Add
(
transform
.
localPosition
);
square
.
pathVelocity
.
Add
(
0.0f
);
_pathRenderer
.
SetPositions
(
square
.
pathList
.
ToArray
());
for
(
int
i
=
0
;
i
<
transform
.
childCount
;
i
++)
{
Destroy
(
transform
.
GetChild
(
i
).
gameObject
);
}
}
private
void
_DrawMorePath
(
Vector3
point
)
{
if
(
square
.
pathList
.
Count
==
0
)
{
_DrawOnePath
(
point
);
}
else
{
var
tmp
=
transform
.
InverseTransformPoint
(
point
);
square
.
pathList
.
Add
(
new
Vector3
(
tmp
.
x
,
tmp
.
y
,
0.0f
));
square
.
pathVelocity
.
Add
(
velocityslider
.
GetLogScaleValue
());
_pathRenderer
.
positionCount
=
square
.
pathList
.
Count
();
_pathRenderer
.
SetPositions
(
square
.
pathList
.
ToArray
());
_InstantiatePathCollider
(
square
.
pathList
.
Count
()
-
2
);
}
}
public
void
PathClear
()
{
_ResetPaths
();
}
/// <summary>
/// 현재 설정된 경로를 반환.
/// 0번은 내 위치
/// x y 가 공간 z 가 시간
/// </summary>
public
List
<
Vector3
>
PathPositionsXY
{
get
{
return
square
.
pathList
;
}
}
/// <summary>
/// 현재 설정된 경로를 반환.
/// 0번은 현재위치 //패트롤 고려
/// x z 가 공간 y 가 시간
/// </summary>
public
List
<
Vector3
>
PathPositionsXZ
{
get
{
List
<
Vector3
>
list
=
new
List
<
Vector3
>();
foreach
(
var
a
in
square
.
pathList
)
{
//xy -> xz
list
.
Add
(
new
Vector3
(
a
.
x
,
0
,
a
.
y
));
}
return
list
;
}
}
/// <summary>
/// 현재 설정된 경로의 속력을 반환.
/// 0번은 0.0f
/// </summary>
public
List
<
float
>
PathVelocities
{
get
{
return
new
List
<
float
>(
square
.
pathVelocity
);
}
}
private
void
_InstantiatePathCollider
(
int
n
)
{
var
_pathCollider
=
Instantiate
(
PathColliderPrefab
,
transform
);
_pathCollider
.
name
=
"PathCollider-"
+
n
;
_pathCollider
.
tag
=
"path"
;
_pathCollider
.
transform
.
localScale
=
new
Vector3
(
0.1f
,
_originalPathColliderY
,
0
);
_pathCollider
.
transform
.
localEulerAngles
=
new
Vector3
(
0
,
0
,
(
float
)
Constants
.
RadianToDegree
(
Mathf
.
PI
/
2
+
Mathf
.
Atan
(
square
.
GetTangent
(
square
.
GetNthPath
(
n
)))));
float
_newY
=
square
.
GetNthPath
(
n
).
magnitude
;
_pathCollider
.
transform
.
localScale
=
new
Vector3
(
0.1f
,
_newY
*
_originalPathColliderY
,
0
);
_pathCollider
.
transform
.
localPosition
=
(
square
.
pathList
[
n
]
+
square
.
pathList
[
n
+
1
])
/
2
;
}
public
IEnumerator
_StartMovingPath
(
int
finalPathNum
)
{
int
i
=
0
;
var
u
=
levelManager
.
player
.
v
;
int
tinterval
=
Constants
.
alphatinterval
;
VectorBuilder
<
double
>
V
=
Vector
<
double
>.
Build
;
while
(
i
<=
finalPathNum
)
{
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
acceleration
=
dest
.
normalized
;
var
v
=
square
.
GetPathVelocity
(
i
);
var
atmp
=
(
float
)(
v
*
Constants
.
c
);
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
};
var
deltavnaive
=
V
.
DenseOfArray
(
vtmp
);
var
deltaxnaive
=
V
.
DenseOfArray
(
xtmp
);
double
[]
tmp
=
{
Constants
.
c
*
Constants
.
Gamma
(
deltavnaive
.
L2Norm
()),
deltavnaive
[
0
]
*
Constants
.
Gamma
(
deltavnaive
.
L2Norm
()),
deltavnaive
[
2
]
*
Constants
.
Gamma
(
deltavnaive
.
L2Norm
())};
var
deltav
=
V
.
DenseOfArray
(
tmp
);
Vector
<
double
>
deltax
=
deltaxnaive
;
if
(
u
.
magnitude
>
0.0f
)
{
deltav
=
Constants
.
BoostMatrix
(-
u
)
*
deltav
;
deltax
=
Constants
.
BoostMatrix
(-
u
)
*
deltaxnaive
;
}
var
tt
=
deltav
[
0
]
/
Constants
.
c
;
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
]);
levelManager
.
player
.
v
=
finaldeltav
;
while
(
true
)
{
var
currentpos
=
new
Vector3
(
levelManager
.
player
.
transform
.
position
.
x
,
0
,
levelManager
.
player
.
transform
.
position
.
z
);
var
traveledpos
=
currentpos
-
startpos
;
if
(
traveledpos
.
magnitude
>=
finaldeltax
.
magnitude
)
{
break
;
}
yield
return
new
WaitForFixedUpdate
();
}
/*
levelManager.player.alpha = new Vector3(0, 0, 0);
var v = square.GetPathVelocity(i);
var atmp = (float)(v * Constants.c);
double[] vtmp = { ((acceleration.x / acceleration.magnitude)), 0.0, ((acceleration.z / acceleration.magnitude)) };
var deltavnaive = V.DenseOfArray(vtmp);
double[] tmp = {Constants.c * Constants.Gamma(deltavnaive.L2Norm()),
deltavnaive[0] * Constants.Gamma(deltavnaive.L2Norm()),
deltavnaive[2] * Constants.Gamma(deltavnaive.L2Norm())};
var deltav = V.DenseOfArray(tmp);
if (u.magnitude > 0.0f)
{
deltav = Constants.BoostMatrix(u) * deltav;
var deltavsize = Mathf.Sqrt((float)(deltav[1] * deltav[1] + deltav[2] * deltav[2]));
deltav = atmp / deltavsize * deltav;
deltav[0] = Constants.Gamma(atmp) * Constants.c;
deltav[1] *= Constants.Gamma(atmp);
deltav[2] *= Constants.Gamma(atmp);
deltav = Constants.BoostMatrix(-u) * deltav;
}
else
{
var deltavsize = Mathf.Sqrt((float)(deltav[1] * deltav[1] + deltav[2] * deltav[2]));
deltav = atmp / deltavsize * deltav;
deltav[0] = Constants.Gamma(atmp) * Constants.c;
deltav[1] *= Constants.Gamma(atmp);
deltav[2] *= Constants.Gamma(atmp);
}
var tt = deltav[0] / Constants.c;
Vector3 finaldeltav = new Vector3((float)(deltav[1] / tt), 0.0f, (float)(deltav[2] / tt));
levelManager.player.v = finaldeltav;
var prevdistance = (dest
+ (new Vector3(Background.transform.position.x, 0, Background.transform.position.z))
- (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z)));
yield return new WaitForFixedUpdate();
while (true)
{
var distanceleft = (dest
+ (new Vector3(Background.transform.position.x, 0, Background.transform.position.z))
- (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z)));
if (distanceleft.magnitude - prevdistance.magnitude >= 0.0f)
break;
prevdistance = distanceleft;
yield return new WaitForFixedUpdate();
}*/
/*
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);
acceleration = acceleration.normalized;
var deltat = Time.fixedDeltaTime * tinterval;
var v = square.GetPathVelocity(i);
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
var startv = levelManager.player.v;
levelManager.player.alpha = acceleration;
for (var j = 0; j < tinterval; ++j)
{
var tmp = (dest
+ (new Vector3(Background.transform.position.x, 0, Background.transform.position.z))
- (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z)));
yield return new WaitForFixedUpdate();
}
levelManager.player.alpha = new Vector3(0, 0, 0);
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 posdiff = newpos - startpos;
var offset = offsetnewpos - offsetstartpos;
posdiff = posdiff - offset;
while(true)
{
var tmp = (dest
+ (new Vector3(Background.transform.position.x, 0, Background.transform.position.z))
- (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z)));
if (tmp.magnitude - posdiff.magnitude < 0.0f)
break;
yield return new WaitForFixedUpdate();
}
acceleration = -acceleration;
levelManager.player.alpha = acceleration;
for (var j = 0; j < tinterval; ++j)
{
yield return new WaitForFixedUpdate();
}
levelManager.player.alpha = new Vector3(0, 0, 0);
*/
levelManager
.
player
.
v
=
u
;
levelManager
.
player
.
transform
.
position
=
new
Vector3
(
startpos
.
x
+
finaldeltax
.
x
,
levelManager
.
player
.
transform
.
position
.
y
,
startpos
.
z
+
finaldeltax
.
z
);
i
++;
}
Background
.
Toggle
=
true
;
}
public
void
DeletePathsAfterNthPath
(
int
n
)
{
square
.
pathList
.
RemoveRange
(
n
,
_pathRenderer
.
positionCount
-
n
);
square
.
pathVelocity
.
RemoveRange
(
n
,
_pathRenderer
.
positionCount
-
n
);
for
(
int
i
=
0
;
i
<
transform
.
childCount
;
i
++)
{
if
(
i
+
1
>=
n
)
Destroy
(
transform
.
GetChild
(
i
).
gameObject
);
}
_pathRenderer
.
positionCount
=
square
.
pathList
.
Count
();
}
}
using
System.Collections
;
using
System.Collections.Generic
;
using
UnityEngine
;
using
System.Linq
;
using
UnityEngine.UI
;
using
System
;
using
MathNet.Numerics.LinearAlgebra
;
using
MathNet.Numerics.LinearAlgebra.Double
;
public
class
PathRenderer
:
MonoBehaviour
{
[
SerializeField
]
Square
square
;
[
SerializeField
]
GameObject
PathColliderPrefab
;
[
SerializeField
]
Camera
playercamera
;
[
SerializeField
]
LevelManager
levelManager
;
[
SerializeField
]
BackgroundMovement
background
;
[
SerializeField
]
LogScaleSlider
velocityslider
;
LineRenderer
_pathRenderer
;
float
_originalPathColliderY
;
public
BackgroundMovement
Background
{
get
{
return
background
;
}
set
{
background
=
value
;
}
}
// Start is called before the first frame update
void
Start
()
{
_originalPathColliderY
=
PathColliderPrefab
.
transform
.
localScale
.
y
/
2
;
_pathRenderer
=
GetComponent
<
LineRenderer
>();
_ResetPaths
();
}
// Update is called once per frame
void
Update
()
{
if
(
Input
.
GetMouseButtonDown
(
1
)
&&
levelManager
.
player
.
isInertial
())
{
RaycastHit
hit
;
var
ray
=
Camera
.
main
.
ScreenPointToRay
(
Input
.
mousePosition
);
if
(
Physics
.
Raycast
(
ray
,
out
hit
))
{
ray
=
playercamera
.
ViewportPointToRay
(
hit
.
textureCoord
);
if
(
Physics
.
Raycast
(
ray
,
out
hit
))
{
if
(
Input
.
GetKey
(
KeyCode
.
LeftShift
))
{
_DrawMorePath
(
hit
.
point
);
}
else
{
_DrawOnePath
(
hit
.
point
);
}
}
}
/*if (Physics.Raycast(ray, out hit))
{
if (Input.GetKey(KeyCode.LeftShift))
{
_DrawMorePath(hit.point);
}
else
{
_DrawOnePath(hit.point);
}
}*/
}
}
private
void
_DrawOnePath
(
Vector3
point
)
{
_ResetPaths
();
square
.
pathList
[
0
]
=
transform
.
localPosition
;
square
.
pathVelocity
[
0
]
=
0.0f
;
var
tmp
=
transform
.
InverseTransformPoint
(
point
);
square
.
pathList
[
1
]
=
new
Vector3
(
tmp
.
x
,
tmp
.
y
,
0.0f
);
square
.
pathVelocity
[
1
]
=
velocityslider
.
GetLogScaleValue
();
_pathRenderer
.
SetPositions
(
square
.
pathList
.
ToArray
());
_InstantiatePathCollider
(
0
);
}
private
void
_ResetPaths
()
{
_pathRenderer
.
positionCount
=
2
;
square
.
pathList
.
Clear
();
square
.
pathVelocity
.
Clear
();
square
.
pathList
.
Add
(
transform
.
localPosition
);
square
.
pathVelocity
.
Add
(
0.0f
);
square
.
pathList
.
Add
(
transform
.
localPosition
);
square
.
pathVelocity
.
Add
(
0.0f
);
_pathRenderer
.
SetPositions
(
square
.
pathList
.
ToArray
());
for
(
int
i
=
0
;
i
<
transform
.
childCount
;
i
++)
{
Destroy
(
transform
.
GetChild
(
i
).
gameObject
);
}
}
private
void
_DrawMorePath
(
Vector3
point
)
{
if
(
square
.
pathList
.
Count
==
0
)
{
_DrawOnePath
(
point
);
}
else
{
var
tmp
=
transform
.
InverseTransformPoint
(
point
);
square
.
pathList
.
Add
(
new
Vector3
(
tmp
.
x
,
tmp
.
y
,
0.0f
));
square
.
pathVelocity
.
Add
(
velocityslider
.
GetLogScaleValue
());
_pathRenderer
.
positionCount
=
square
.
pathList
.
Count
();
_pathRenderer
.
SetPositions
(
square
.
pathList
.
ToArray
());
_InstantiatePathCollider
(
square
.
pathList
.
Count
()
-
2
);
}
}
public
void
PathClear
()
{
_ResetPaths
();
}
/// <summary>
/// 현재 설정된 경로를 반환.
/// 0번은 내 위치
/// x y 가 공간 z 가 시간
/// </summary>
public
List
<
Vector3
>
PathPositionsXY
{
get
{
return
square
.
pathList
;
}
}
/// <summary>
/// 현재 설정된 경로를 반환.
/// 0번은 현재위치 //패트롤 고려
/// x z 가 공간 y 가 시간
/// </summary>
public
List
<
Vector3
>
PathPositionsXZ
{
get
{
List
<
Vector3
>
list
=
new
List
<
Vector3
>();
foreach
(
var
a
in
square
.
pathList
)
{
//xy -> xz
list
.
Add
(
new
Vector3
(
a
.
x
,
0
,
a
.
y
));
}
return
list
;
}
}
/// <summary>
/// 현재 설정된 경로의 속력을 반환.
/// 0번은 0.0f
/// </summary>
public
List
<
float
>
PathVelocities
{
get
{
return
new
List
<
float
>(
square
.
pathVelocity
);
}
}
private
void
_InstantiatePathCollider
(
int
n
)
{
var
_pathCollider
=
Instantiate
(
PathColliderPrefab
,
transform
);
_pathCollider
.
name
=
"PathCollider-"
+
n
;
_pathCollider
.
tag
=
"path"
;
_pathCollider
.
transform
.
localScale
=
new
Vector3
(
0.1f
,
_originalPathColliderY
,
0
);
_pathCollider
.
transform
.
localEulerAngles
=
new
Vector3
(
0
,
0
,
(
float
)
Constants
.
RadianToDegree
(
Mathf
.
PI
/
2
+
Mathf
.
Atan
(
square
.
GetTangent
(
square
.
GetNthPath
(
n
)))));
float
_newY
=
square
.
GetNthPath
(
n
).
magnitude
;
_pathCollider
.
transform
.
localScale
=
new
Vector3
(
0.1f
,
_newY
*
_originalPathColliderY
,
0
);
_pathCollider
.
transform
.
localPosition
=
(
square
.
pathList
[
n
]
+
square
.
pathList
[
n
+
1
])
/
2
;
}
public
IEnumerator
_StartMovingPath
(
int
finalPathNum
)
{
int
i
=
0
;
var
u
=
levelManager
.
player
.
v
;
int
tinterval
=
Constants
.
alphatinterval
;
VectorBuilder
<
double
>
V
=
Vector
<
double
>.
Build
;
while
(
i
<=
finalPathNum
)
{
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
acceleration
=
dest
.
normalized
;
var
v
=
square
.
GetPathVelocity
(
i
);
var
atmp
=
(
float
)(
v
*
Constants
.
c
);
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
};
var
deltavnaive
=
V
.
DenseOfArray
(
vtmp
);
var
deltaxnaive
=
V
.
DenseOfArray
(
xtmp
);
double
[]
tmp
=
{
Constants
.
c
*
Constants
.
Gamma
(
deltavnaive
.
L2Norm
()),
deltavnaive
[
0
]
*
Constants
.
Gamma
(
deltavnaive
.
L2Norm
()),
deltavnaive
[
2
]
*
Constants
.
Gamma
(
deltavnaive
.
L2Norm
())};
var
deltav
=
V
.
DenseOfArray
(
tmp
);
Vector
<
double
>
deltax
=
deltaxnaive
;
if
(
u
.
magnitude
>
0.0f
)
{
deltav
=
Constants
.
BoostMatrix
(-
u
)
*
deltav
;
deltax
=
Constants
.
BoostMatrix
(-
u
)
*
deltaxnaive
;
}
var
tt
=
deltav
[
0
]
/
Constants
.
c
;
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
]);
levelManager
.
player
.
v
=
finaldeltav
;
while
(
true
)
{
var
currentpos
=
new
Vector3
(
levelManager
.
player
.
transform
.
position
.
x
,
0
,
levelManager
.
player
.
transform
.
position
.
z
);
var
traveledpos
=
currentpos
-
startpos
;
if
(
traveledpos
.
magnitude
>=
finaldeltax
.
magnitude
)
{
break
;
}
yield
return
new
WaitForFixedUpdate
();
}
/*
levelManager.player.alpha = new Vector3(0, 0, 0);
var v = square.GetPathVelocity(i);
var atmp = (float)(v * Constants.c);
double[] vtmp = { ((acceleration.x / acceleration.magnitude)), 0.0, ((acceleration.z / acceleration.magnitude)) };
var deltavnaive = V.DenseOfArray(vtmp);
double[] tmp = {Constants.c * Constants.Gamma(deltavnaive.L2Norm()),
deltavnaive[0] * Constants.Gamma(deltavnaive.L2Norm()),
deltavnaive[2] * Constants.Gamma(deltavnaive.L2Norm())};
var deltav = V.DenseOfArray(tmp);
if (u.magnitude > 0.0f)
{
deltav = Constants.BoostMatrix(u) * deltav;
var deltavsize = Mathf.Sqrt((float)(deltav[1] * deltav[1] + deltav[2] * deltav[2]));
deltav = atmp / deltavsize * deltav;
deltav[0] = Constants.Gamma(atmp) * Constants.c;
deltav[1] *= Constants.Gamma(atmp);
deltav[2] *= Constants.Gamma(atmp);
deltav = Constants.BoostMatrix(-u) * deltav;
}
else
{
var deltavsize = Mathf.Sqrt((float)(deltav[1] * deltav[1] + deltav[2] * deltav[2]));
deltav = atmp / deltavsize * deltav;
deltav[0] = Constants.Gamma(atmp) * Constants.c;
deltav[1] *= Constants.Gamma(atmp);
deltav[2] *= Constants.Gamma(atmp);
}
var tt = deltav[0] / Constants.c;
Vector3 finaldeltav = new Vector3((float)(deltav[1] / tt), 0.0f, (float)(deltav[2] / tt));
levelManager.player.v = finaldeltav;
var prevdistance = (dest
+ (new Vector3(Background.transform.position.x, 0, Background.transform.position.z))
- (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z)));
yield return new WaitForFixedUpdate();
while (true)
{
var distanceleft = (dest
+ (new Vector3(Background.transform.position.x, 0, Background.transform.position.z))
- (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z)));
if (distanceleft.magnitude - prevdistance.magnitude >= 0.0f)
break;
prevdistance = distanceleft;
yield return new WaitForFixedUpdate();
}*/
/*
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);
acceleration = acceleration.normalized;
var deltat = Time.fixedDeltaTime * tinterval;
var v = square.GetPathVelocity(i);
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
var startv = levelManager.player.v;
levelManager.player.alpha = acceleration;
for (var j = 0; j < tinterval; ++j)
{
var tmp = (dest
+ (new Vector3(Background.transform.position.x, 0, Background.transform.position.z))
- (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z)));
yield return new WaitForFixedUpdate();
}
levelManager.player.alpha = new Vector3(0, 0, 0);
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 posdiff = newpos - startpos;
var offset = offsetnewpos - offsetstartpos;
posdiff = posdiff - offset;
while(true)
{
var tmp = (dest
+ (new Vector3(Background.transform.position.x, 0, Background.transform.position.z))
- (new Vector3(levelManager.player.transform.position.x, 0, levelManager.player.transform.position.z)));
if (tmp.magnitude - posdiff.magnitude < 0.0f)
break;
yield return new WaitForFixedUpdate();
}
acceleration = -acceleration;
levelManager.player.alpha = acceleration;
for (var j = 0; j < tinterval; ++j)
{
yield return new WaitForFixedUpdate();
}
levelManager.player.alpha = new Vector3(0, 0, 0);
*/
levelManager
.
player
.
v
=
u
;
levelManager
.
player
.
transform
.
position
=
new
Vector3
(
startpos
.
x
+
finaldeltax
.
x
,
levelManager
.
player
.
transform
.
position
.
y
,
startpos
.
z
+
finaldeltax
.
z
);
i
++;
}
Background
.
Toggle
=
true
;
}
public
void
DeletePathsAfterNthPath
(
int
n
)
{
square
.
pathList
.
RemoveRange
(
n
,
_pathRenderer
.
positionCount
-
n
);
square
.
pathVelocity
.
RemoveRange
(
n
,
_pathRenderer
.
positionCount
-
n
);
for
(
int
i
=
0
;
i
<
transform
.
childCount
;
i
++)
{
if
(
i
+
1
>=
n
)
Destroy
(
transform
.
GetChild
(
i
).
gameObject
);
}
_pathRenderer
.
positionCount
=
square
.
pathList
.
Count
();
}
}
Assets/Scripts/Square.cs
View file @
b78482ab
using
System.Collections
;
using
System.Collections.Generic
;
using
UnityEngine
;
using
System
;
using
System.Linq
;
public
class
Square
:
FlatLandObject
{
public
List
<
Vector3
>
pathList
=
new
List
<
Vector3
>();
public
List
<
float
>
pathVelocity
=
new
List
<
float
>();
private
float
_zPosition
=>
transform
.
position
.
z
;
private
float
PlayerVelocity
;
public
Vector3
GetNthPath
(
int
n
)
// Get a path from (n)th destination to (n+1)th destination.
{
return
pathList
[
n
+
1
]
-
pathList
[
n
];
}
public
float
GetTangent
(
Vector3
v
)
{
return
v
.
y
/
v
.
x
;
}
public
Vector3
GetDestPoint
(
int
n
)
{
return
pathList
[
n
+
1
];
}
public
float
GetPathVelocity
(
int
n
)
{
return
pathVelocity
[
n
+
1
];
}
using
System.Collections
;
using
System.Collections.Generic
;
using
UnityEngine
;
using
System
;
using
System.Linq
;
public
class
Square
:
FlatLandObject
{
public
List
<
Vector3
>
pathList
=
new
List
<
Vector3
>();
public
List
<
float
>
pathVelocity
=
new
List
<
float
>();
private
float
_zPosition
=>
transform
.
position
.
z
;
private
float
PlayerVelocity
;
public
Vector3
GetNthPath
(
int
n
)
// Get a path from (n)th destination to (n+1)th destination.
{
return
pathList
[
n
+
1
]
-
pathList
[
n
];
}
public
float
GetTangent
(
Vector3
v
)
{
return
v
.
y
/
v
.
x
;
}
public
Vector3
GetDestPoint
(
int
n
)
{
return
pathList
[
n
+
1
];
}
public
float
GetPathVelocity
(
int
n
)
{
return
pathVelocity
[
n
+
1
];
}
}
\ No newline at end of file
Assets/Scripts/UIManager.cs
View file @
b78482ab
using
System.Collections
;
using
System.Collections.Generic
;
using
UnityEngine.EventSystems
;
using
UnityEngine
;
using
UnityEngine.UI
;
using
System
;
using
System.Linq
;
public
class
UIManager
:
MonoBehaviour
{
[
SerializeField
]
Square
square
;
[
SerializeField
]
Camera
playercamera
;
[
SerializeField
]
LogScaleSlider
velocityslider
;
[
SerializeField
]
LogScaleSlider
accelslider
;
public
Canvas
canvas
;
public
Text
mytime
;
//public Planemovement clock1;
//public Planemovement clock2;
//public Text clock1time;
//public Text clock2time;
public
Text
wintext
;
public
GameObject
_pathUI
;
public
LevelManager
levelManager
;
public
PathRenderer
pathRenderer
;
private
int
prevSelectPathNum
=
-
1
;
private
Text
pathName
;
private
Text
pathVelocity
;
private
Vector3
middlePoint
;
private
Vector3
canvasSize
;
private
int
sliderflag
=
0
;
GraphicRaycaster
gr
;
PointerEventData
ped
;
// Start is called before the first frame update
void
Start
()
{
_pathUI
.
SetActive
(
false
);
pathName
=
_pathUI
.
transform
.
Find
(
"Name"
).
GetComponent
<
Text
>();
pathVelocity
=
_pathUI
.
transform
.
Find
(
"Velocity"
).
GetComponent
<
Text
>();
middlePoint
=
_pathUI
.
transform
.
position
;
canvasSize
=
new
Vector3
(
Screen
.
width
,
Screen
.
height
,
0
);
gr
=
canvas
.
GetComponent
<
GraphicRaycaster
>();
ped
=
new
PointerEventData
(
null
);
}
// Update is called once per frame
void
Update
()
{
mytime
.
text
=
levelManager
.
player
.
time
.
ToString
()
+
" s"
;
//clock1time.text = clock1.GetTime().ToString() + " s";
//clock2time.text = clock2.GetTime().ToString() + " s";
if
(
levelManager
.
winstate
)
{
wintext
.
gameObject
.
SetActive
(
true
);
}
if
(
Input
.
GetMouseButtonDown
(
0
))
{
ped
.
position
=
Input
.
mousePosition
;
List
<
RaycastResult
>
results
=
new
List
<
RaycastResult
>();
gr
.
Raycast
(
ped
,
results
);
bool
isIgnored
=
true
;
//ui 클릭시.
foreach
(
RaycastResult
re
in
results
)
{
GameObject
obj
=
re
.
gameObject
;
//panel만 있는지 검사.
isIgnored
&=
(
obj
.
tag
==
"ignored"
);
//Debug.Log(obj);
//슬라이더일때
if
(
obj
.
tag
==
"VelocitySlider"
)
{
sliderflag
=
1
;
if
(
_pathUI
.
activeSelf
==
true
&&
prevSelectPathNum
!=
-
1
)
{
square
.
pathVelocity
[
prevSelectPathNum
+
1
]
=
velocityslider
.
GetLogScaleValue
();
pathVelocity
.
text
=
"Velocity: "
+
square
.
GetPathVelocity
(
prevSelectPathNum
).
ToString
()
+
"c"
;
break
;
}
}
}
if
(
isIgnored
)
{
//클릭된 ui가 패널만 있을때.
TryFIndPath
();
}
}
else
if
(
sliderflag
==
1
&&
Input
.
GetMouseButton
(
0
))
{
if
(
_pathUI
.
activeSelf
==
true
&&
prevSelectPathNum
!=
-
1
)
{
square
.
pathVelocity
[
prevSelectPathNum
+
1
]
=
velocityslider
.
GetLogScaleValue
();
pathVelocity
.
text
=
"Velocity: "
+
square
.
GetPathVelocity
(
prevSelectPathNum
).
ToString
()
+
"c"
;
}
}
else
if
(
Input
.
GetMouseButtonDown
(
1
))
{
_pathUI
.
SetActive
(
false
);
prevSelectPathNum
=
-
1
;
sliderflag
=
0
;
}
//player movement
if
(
Input
.
GetKeyDown
(
"w"
))
{
var
tmp
=
accelslider
.
GetLogScaleValue
()
*
(
float
)
Constants
.
c
;
levelManager
.
player
.
alpha
+=
new
Vector3
(
0
,
0
,
tmp
);
}
else
if
(
Input
.
GetKeyDown
(
"a"
))
{
var
tmp
=
accelslider
.
GetLogScaleValue
()
*
(
float
)
Constants
.
c
;
levelManager
.
player
.
alpha
+=
new
Vector3
(-
tmp
,
0
,
0
);
}
else
if
(
Input
.
GetKeyDown
(
"s"
))
{
var
tmp
=
accelslider
.
GetLogScaleValue
()
*
(
float
)
Constants
.
c
;
levelManager
.
player
.
alpha
+=
new
Vector3
(
0
,
0
,
-
tmp
);
}
else
if
(
Input
.
GetKeyDown
(
"d"
))
{
var
tmp
=
accelslider
.
GetLogScaleValue
()
*
(
float
)
Constants
.
c
;
levelManager
.
player
.
alpha
+=
new
Vector3
(
tmp
,
0
,
0
);
}
if
(
Input
.
GetKeyUp
(
"w"
))
{
levelManager
.
player
.
alpha
-=
new
Vector3
(
0
,
0
,
levelManager
.
player
.
alpha
.
z
);
}
else
if
(
Input
.
GetKeyUp
(
"a"
))
{
levelManager
.
player
.
alpha
-=
new
Vector3
(
levelManager
.
player
.
alpha
.
x
,
0
,
0
);
}
else
if
(
Input
.
GetKeyUp
(
"s"
))
{
levelManager
.
player
.
alpha
-=
new
Vector3
(
0
,
0
,
levelManager
.
player
.
alpha
.
z
);
}
else
if
(
Input
.
GetKeyUp
(
"d"
))
{
levelManager
.
player
.
alpha
-=
new
Vector3
(
levelManager
.
player
.
alpha
.
x
,
0
,
0
);
}
}
private
Vector3
getMouseClickPosition
(
RaycastHit
hit
)
{
var
tmp
=
Camera
.
main
.
WorldToScreenPoint
(
hit
.
point
);
return
tmp
-
canvasSize
*
0.5f
+
middlePoint
;
}
private
Vector3
getDestVector
(
Vector3
hitVector1
,
Vector3
hitVector2
,
int
pathNum
)
{
hitVector1
.
z
=
0
;
var
v
=
square
.
GetDestPoint
(
pathNum
)
-
hitVector2
;
var
k
=
hitVector1
.
magnitude
/
hitVector2
.
magnitude
;
return
k
*
v
;
}
private
void
updatePathInfo
(
GameObject
obj
,
int
pathNum
)
{
pathName
.
text
=
obj
.
name
;
pathVelocity
.
text
=
"Velocity: "
+
square
.
GetPathVelocity
(
pathNum
).
ToString
()
+
"c"
;
velocityslider
.
UpdateValuebyVelocity
(
square
.
GetPathVelocity
(
pathNum
));
}
private
void
TryFIndPath
()
{
RaycastHit
hit1
;
RaycastHit
hit2
;
var
ray
=
Camera
.
main
.
ScreenPointToRay
(
Input
.
mousePosition
);
if
(
Physics
.
Raycast
(
ray
,
out
hit1
))
{
ray
=
playercamera
.
ViewportPointToRay
(
hit1
.
textureCoord
);
if
(
Physics
.
Raycast
(
ray
,
out
hit2
))
{
var
obj
=
hit2
.
collider
.
gameObject
;
Debug
.
Log
(
obj
.
tag
);
if
(
obj
.
tag
==
"path"
)
{
int
pathNum
=
int
.
Parse
(
obj
.
name
.
Substring
(
13
));
if
(
pathNum
!=
prevSelectPathNum
)
{
updatePathInfo
(
obj
,
pathNum
);
var
mouseClickPosition
=
getMouseClickPosition
(
hit1
);
var
v
=
getDestVector
(
mouseClickPosition
-
middlePoint
,
new
Vector3
(
hit2
.
point
.
x
,
hit2
.
point
.
z
,
0.0f
),
pathNum
);
_pathUI
.
transform
.
position
=
mouseClickPosition
+
v
;
_pathUI
.
SetActive
(
true
);
prevSelectPathNum
=
pathNum
;
}
}
else
{
_pathUI
.
SetActive
(
false
);
prevSelectPathNum
=
-
1
;
sliderflag
=
0
;
}
}
}
}
/// <summary>
/// 현재 지정된 path를 시작합니다.
/// </summary>
public
void
PathStart
()
{
pathRenderer
.
Background
.
Toggle
=
false
;
StartCoroutine
(
pathRenderer
.
_StartMovingPath
(
prevSelectPathNum
));
}
public
void
PathCancel
()
{
pathRenderer
.
DeletePathsAfterNthPath
(
prevSelectPathNum
+
1
);
_pathUI
.
SetActive
(
false
);
prevSelectPathNum
=
-
1
;
}
public
void
OnDoubleClicked
()
{
try
{
if
(
levelManager
.
player
.
isInertial
())
{
RaycastHit
hit
;
var
ray
=
Camera
.
main
.
ScreenPointToRay
(
Input
.
mousePosition
);
if
(
Physics
.
Raycast
(
ray
,
out
hit
))
{
ray
=
playercamera
.
ViewportPointToRay
(
hit
.
textureCoord
);
if
(
Physics
.
Raycast
(
ray
,
out
hit
))
{
levelManager
.
player
.
MoveInfinitelyToAbPosition
(
pathRenderer
.
transform
.
InverseTransformPoint
(
hit
.
point
),
velocityslider
.
GetLogScaleValue
());
//levelManager.player.MoveToAbPosition(hit.point, velocityslider.GetLogScaleValue());
//Debug.Log(velocityslider.GetLogScaleValue() * (float)Constants.c);
//Debug.Log(hit.point);
}
}
}
}
catch
(
Exception
e
)
{
Debug
.
Log
(
e
);
}
}
}
using
System.Collections
;
using
System.Collections.Generic
;
using
UnityEngine.EventSystems
;
using
UnityEngine
;
using
UnityEngine.UI
;
using
System
;
using
System.Linq
;
public
class
UIManager
:
MonoBehaviour
{
[
SerializeField
]
Square
square
;
[
SerializeField
]
Camera
playercamera
;
[
SerializeField
]
LogScaleSlider
velocityslider
;
[
SerializeField
]
LogScaleSlider
accelslider
;
public
Canvas
canvas
;
public
Text
mytime
;
//public Planemovement clock1;
//public Planemovement clock2;
//public Text clock1time;
//public Text clock2time;
public
Text
wintext
;
public
GameObject
_pathUI
;
public
LevelManager
levelManager
;
public
PathRenderer
pathRenderer
;
private
int
prevSelectPathNum
=
-
1
;
private
Text
pathName
;
private
Text
pathVelocity
;
private
Vector3
middlePoint
;
private
Vector3
canvasSize
;
private
int
sliderflag
=
0
;
GraphicRaycaster
gr
;
PointerEventData
ped
;
// Start is called before the first frame update
void
Start
()
{
_pathUI
.
SetActive
(
false
);
pathName
=
_pathUI
.
transform
.
Find
(
"Name"
).
GetComponent
<
Text
>();
pathVelocity
=
_pathUI
.
transform
.
Find
(
"Velocity"
).
GetComponent
<
Text
>();
middlePoint
=
_pathUI
.
transform
.
position
;
canvasSize
=
new
Vector3
(
Screen
.
width
,
Screen
.
height
,
0
);
gr
=
canvas
.
GetComponent
<
GraphicRaycaster
>();
ped
=
new
PointerEventData
(
null
);
}
// Update is called once per frame
void
Update
()
{
mytime
.
text
=
levelManager
.
player
.
time
.
ToString
()
+
" s"
;
//clock1time.text = clock1.GetTime().ToString() + " s";
//clock2time.text = clock2.GetTime().ToString() + " s";
if
(
levelManager
.
winstate
)
{
wintext
.
gameObject
.
SetActive
(
true
);
}
if
(
Input
.
GetMouseButtonDown
(
0
))
{
ped
.
position
=
Input
.
mousePosition
;
List
<
RaycastResult
>
results
=
new
List
<
RaycastResult
>();
gr
.
Raycast
(
ped
,
results
);
bool
isIgnored
=
true
;
//ui 클릭시.
foreach
(
RaycastResult
re
in
results
)
{
GameObject
obj
=
re
.
gameObject
;
//panel만 있는지 검사.
isIgnored
&=
(
obj
.
tag
==
"ignored"
);
//Debug.Log(obj);
//슬라이더일때
if
(
obj
.
tag
==
"VelocitySlider"
)
{
sliderflag
=
1
;
if
(
_pathUI
.
activeSelf
==
true
&&
prevSelectPathNum
!=
-
1
)
{
square
.
pathVelocity
[
prevSelectPathNum
+
1
]
=
velocityslider
.
GetLogScaleValue
();
pathVelocity
.
text
=
"Velocity: "
+
square
.
GetPathVelocity
(
prevSelectPathNum
).
ToString
()
+
"c"
;
break
;
}
}
}
if
(
isIgnored
)
{
//클릭된 ui가 패널만 있을때.
TryFIndPath
();
}
}
else
if
(
sliderflag
==
1
&&
Input
.
GetMouseButton
(
0
))
{
if
(
_pathUI
.
activeSelf
==
true
&&
prevSelectPathNum
!=
-
1
)
{
square
.
pathVelocity
[
prevSelectPathNum
+
1
]
=
velocityslider
.
GetLogScaleValue
();
pathVelocity
.
text
=
"Velocity: "
+
square
.
GetPathVelocity
(
prevSelectPathNum
).
ToString
()
+
"c"
;
}
}
else
if
(
Input
.
GetMouseButtonDown
(
1
))
{
_pathUI
.
SetActive
(
false
);
prevSelectPathNum
=
-
1
;
sliderflag
=
0
;
}
//player movement
if
(
Input
.
GetKeyDown
(
"w"
))
{
var
tmp
=
accelslider
.
GetLogScaleValue
()
*
(
float
)
Constants
.
c
;
levelManager
.
player
.
alpha
+=
new
Vector3
(
0
,
0
,
tmp
);
}
else
if
(
Input
.
GetKeyDown
(
"a"
))
{
var
tmp
=
accelslider
.
GetLogScaleValue
()
*
(
float
)
Constants
.
c
;
levelManager
.
player
.
alpha
+=
new
Vector3
(-
tmp
,
0
,
0
);
}
else
if
(
Input
.
GetKeyDown
(
"s"
))
{
var
tmp
=
accelslider
.
GetLogScaleValue
()
*
(
float
)
Constants
.
c
;
levelManager
.
player
.
alpha
+=
new
Vector3
(
0
,
0
,
-
tmp
);
}
else
if
(
Input
.
GetKeyDown
(
"d"
))
{
var
tmp
=
accelslider
.
GetLogScaleValue
()
*
(
float
)
Constants
.
c
;
levelManager
.
player
.
alpha
+=
new
Vector3
(
tmp
,
0
,
0
);
}
if
(
Input
.
GetKeyUp
(
"w"
))
{
levelManager
.
player
.
alpha
-=
new
Vector3
(
0
,
0
,
levelManager
.
player
.
alpha
.
z
);
}
else
if
(
Input
.
GetKeyUp
(
"a"
))
{
levelManager
.
player
.
alpha
-=
new
Vector3
(
levelManager
.
player
.
alpha
.
x
,
0
,
0
);
}
else
if
(
Input
.
GetKeyUp
(
"s"
))
{
levelManager
.
player
.
alpha
-=
new
Vector3
(
0
,
0
,
levelManager
.
player
.
alpha
.
z
);
}
else
if
(
Input
.
GetKeyUp
(
"d"
))
{
levelManager
.
player
.
alpha
-=
new
Vector3
(
levelManager
.
player
.
alpha
.
x
,
0
,
0
);
}
}
private
Vector3
getMouseClickPosition
(
RaycastHit
hit
)
{
var
tmp
=
Camera
.
main
.
WorldToScreenPoint
(
hit
.
point
);
return
tmp
-
canvasSize
*
0.5f
+
middlePoint
;
}
private
Vector3
getDestVector
(
Vector3
hitVector1
,
Vector3
hitVector2
,
int
pathNum
)
{
hitVector1
.
z
=
0
;
var
v
=
square
.
GetDestPoint
(
pathNum
)
-
hitVector2
;
var
k
=
hitVector1
.
magnitude
/
hitVector2
.
magnitude
;
return
k
*
v
;
}
private
void
updatePathInfo
(
GameObject
obj
,
int
pathNum
)
{
pathName
.
text
=
obj
.
name
;
pathVelocity
.
text
=
"Velocity: "
+
square
.
GetPathVelocity
(
pathNum
).
ToString
()
+
"c"
;
velocityslider
.
UpdateValuebyVelocity
(
square
.
GetPathVelocity
(
pathNum
));
}
private
void
TryFIndPath
()
{
RaycastHit
hit1
;
RaycastHit
hit2
;
var
ray
=
Camera
.
main
.
ScreenPointToRay
(
Input
.
mousePosition
);
if
(
Physics
.
Raycast
(
ray
,
out
hit1
))
{
ray
=
playercamera
.
ViewportPointToRay
(
hit1
.
textureCoord
);
if
(
Physics
.
Raycast
(
ray
,
out
hit2
))
{
var
obj
=
hit2
.
collider
.
gameObject
;
Debug
.
Log
(
obj
.
tag
);
if
(
obj
.
tag
==
"path"
)
{
int
pathNum
=
int
.
Parse
(
obj
.
name
.
Substring
(
13
));
if
(
pathNum
!=
prevSelectPathNum
)
{
updatePathInfo
(
obj
,
pathNum
);
var
mouseClickPosition
=
getMouseClickPosition
(
hit1
);
var
v
=
getDestVector
(
mouseClickPosition
-
middlePoint
,
new
Vector3
(
hit2
.
point
.
x
,
hit2
.
point
.
z
,
0.0f
),
pathNum
);
_pathUI
.
transform
.
position
=
mouseClickPosition
+
v
;
_pathUI
.
SetActive
(
true
);
prevSelectPathNum
=
pathNum
;
}
}
else
{
_pathUI
.
SetActive
(
false
);
prevSelectPathNum
=
-
1
;
sliderflag
=
0
;
}
}
}
}
/// <summary>
/// 현재 지정된 path를 시작합니다.
/// </summary>
public
void
PathStart
()
{
pathRenderer
.
Background
.
Toggle
=
false
;
StartCoroutine
(
pathRenderer
.
_StartMovingPath
(
prevSelectPathNum
));
}
public
void
PathCancel
()
{
pathRenderer
.
DeletePathsAfterNthPath
(
prevSelectPathNum
+
1
);
_pathUI
.
SetActive
(
false
);
prevSelectPathNum
=
-
1
;
}
public
void
OnDoubleClicked
()
{
try
{
if
(
levelManager
.
player
.
isInertial
())
{
RaycastHit
hit
;
var
ray
=
Camera
.
main
.
ScreenPointToRay
(
Input
.
mousePosition
);
if
(
Physics
.
Raycast
(
ray
,
out
hit
))
{
ray
=
playercamera
.
ViewportPointToRay
(
hit
.
textureCoord
);
if
(
Physics
.
Raycast
(
ray
,
out
hit
))
{
levelManager
.
player
.
MoveInfinitelyToAbPosition
(
pathRenderer
.
transform
.
InverseTransformPoint
(
hit
.
point
),
velocityslider
.
GetLogScaleValue
());
//levelManager.player.MoveToAbPosition(hit.point, velocityslider.GetLogScaleValue());
//Debug.Log(velocityslider.GetLogScaleValue() * (float)Constants.c);
//Debug.Log(hit.point);
}
}
}
}
catch
(
Exception
e
)
{
Debug
.
Log
(
e
);
}
}
}
ProjectSettings/GraphicsSettings.asset
deleted
100644 → 0
View file @
30a40c2e
%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
ProjectSettings/ProjectSettings.asset
deleted
100644 → 0
View file @
30a40c2e
%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
ProjectSettings/ProjectVersion.txt
deleted
100644 → 0
View file @
30a40c2e
m_EditorVersion: 2019.2.0f1
m_EditorVersionWithRevision: 2019.2.0f1 (20c1667945cf)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment