* new letterbox implementation

* make DSP buffer larger

* add new "ambient" letterbox option

* remap keyboard control

* enable autoplay cheat mode

* fix editor settings not being applied on start

* run the cursor init in editor init

remove debug prints
This commit is contained in:
minenice55 2023-03-11 21:56:26 -05:00 committed by GitHub
parent 20aa211781
commit 29d8c3c40d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
46 changed files with 1328 additions and 1619 deletions

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 2a99a58e442018348acfd830201109e4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,9 +0,0 @@
fileFormatVersion: 2
guid: d1d966b9431ac784c83edb4620eef80f
folderAsset: yes
timeCreated: 1456245966
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,186 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>Letterbox Ratio Doc</title>
<style type="text/css">
body {
border: none;
font-family: Arial,Helvetica,sans-serif;
font-size: 1em;
line-height: 1em;
color: black;
background-color: #fdf9f1;
display: block;
}
</style>
<script language="javascript"> function toggle(togglableText, title) {
var ele = document.getElementById(togglableText);
var text = document.getElementById(title);
if(ele.style.display == "block") {
ele.style.display = "none";
}
else {
ele.style.display = "block";
}
} </script>
</head>
<body>
<h1 style="text-align: center;"><span style="font-family: Helvetica,Arial,sans-serif;"></span>Auto Letterbox Plugin</h1>
<div style="margin-left: 40px;">Welcome to the Auto Letterbox Plugin, for fixing your Camera Aspect Ratio! The fastest way to get started is to go to the <span style="text-decoration: underline;"><span style="font-weight: bold;">GameObject</span></span>
menu and click <span style="text-decoration: underline;"><span style="font-weight: bold;">Create Force Camera Ratios Object</span></span>.<br>
This will set your scene up for displaying in a set
ratio (<span style="font-style: italic;">Target Viewport
Ratio</span>) by creating Letterboxes to fit your Screen. You can
edit the system using the 'Force Camera Ratios' GameObject you've just
created.<br>
<br>
This documentation will delve into the rest of the options you have on
the Component.</div>
<p style="text-align: center;"><img style="border: 1px solid ; width: 1101px; height: 546px;" alt="" title="Clicking the &quot;Create Force Camera Ratios Object&quot; Button under the GameObject Menu is the fastest way to get started" src="Imgs/CreatePic.png" hspace="3" vspace="3"></p>
<table style="width: 90%; height: 166px; text-align: left; margin-left: auto; margin-right: auto;" border="2" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<h2 style="text-align: left; margin-left: 40px;"><a style="font-family: Helvetica,Arial,sans-serif; color: rgb(127, 118, 102); font-weight: bold;" id="displayText1" href="javascript:toggle('toggleText1', 'displayText1');">Standard
Use</a></h2>
<div id="toggleText1" style="display: none;">
<div style="text-align: center;">
<div style="text-align: left;"><img style="width: 356px; height: 76px; float: right;" alt="" src="Imgs/Setup.png">&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; text-decoration: underline;">Target
Viewport Ratio<br>
</span>A Vector2 which sets the Viewport ratio for all
Cameras. You can set this using the provided interface or access this
publically and safely in code. The default is 16:9.<br>
<br>
&nbsp;&nbsp;&nbsp; <span style="text-decoration: underline;"><span style="font-weight: bold;">Ratio on Awake<br>
</span></span>Forces each Camera Viewport to a
re-calculated Viewport when this components' <span style="font-style: italic;">Start()</span> function
runs at
the start of the scene. By default this is on as other-wise you would
have to call <span style="font-style: italic;">CalculateAndSetAllCameraRatios()</span>
through your own code (though
this function can be called at any time).<span style="text-decoration: underline;"><span style="font-weight: bold;"><span style="text-decoration: underline;"><span style="font-weight: bold;"><br>
<br>
</span></span></span></span>&nbsp;&nbsp;&nbsp;
<span style="text-decoration: underline;"><span style="font-weight: bold;">Ratio in Realtime</span></span><br>
Forces each Camera Viewport to recalculate its Viewport every frame.
This is useful if you wish to change the <span style="font-style: italic;">Target Viewport Ratio</span>
in real
time or if you allow the user to resize the Game window.</div>
</div>
</div>
</td>
</tr>
<tr>
<td>
<h2 style="text-align: left; margin-left: 40px;"><a style="font-family: Helvetica,Arial,sans-serif; color: rgb(127, 118, 102); font-weight: bold;" id="displayText2" href="javascript:toggle('toggleText2', 'displayText2');">Letterbox
Camera</a></h2>
<div id="toggleText2" style="display: none;">
<div style="text-align: center;">
<div style="text-align: left;"><img style="width: 367px; height: 49px; float: right;" alt="" src="Imgs/AutoCreateBorderCam.png"> The Letterbox Camera
renders the bars at the sides of the screen which appear when
the&nbsp;<span style="font-style: italic;">Target
Viewport Ratio</span> doesn't match the screen ratio. Not having
a Letterbox Camera could cause ugly artefacts when changing the screen
size or altering the camera ratio.<br>
<br>
There are two ways of creating a Letterbox Camera:<br>
&nbsp;&nbsp;&nbsp; <span style="text-decoration: underline;"><span style="font-weight: bold;">Automatically Create Border Camera<br>
</span></span>When <span style="font-style: italic;">Create Border Camera</span>
is true a Letterbox Camera will automatically be created on <span style="font-style: italic;">Start()</span> at a depth
of -100 and render to a color of your choosing. This is the default
option.<br>
<br>
<img style="width: 367px; height: 48px; float: right;" alt="" src="Imgs/CustomBorderCam.png">&nbsp;&nbsp;&nbsp;
<span style="text-decoration: underline;"><span style="font-weight: bold;">Custom Letterbox Camera</span></span><br>
When <span style="font-style: italic;">Create Border
Camera</span> is false you must assign your own in-scene Camera
to be a Letterbox Camera. This Camera will be ignored by the <span style="font-style: italic;">FindAllCamerasInScene()</span>
function so you can do whatever you want with it's viewport. This is
useful if you want to do something clever with your Letterbox bars like
render an image in the empty space (For an example try the <span style="font-style: italic;">Bitey Dragon</span> Demo
scene included with the package.)</div>
</div>
</div>
</td>
</tr>
<tr>
<td>
<h2 style="text-align: left; margin-left: 40px;"><a style="font-family: Helvetica,Arial,sans-serif; color: rgb(127, 118, 102); font-weight: bold;" id="displayText3" href="javascript:toggle('toggleText3', 'displayText3');">Managing
your Cameras</a></h2>
<div id="toggleText3" style="display: none;">
<div style="text-align: center;">
<div style="text-align: left;"><img style="width: 360px; height: 67px; float: right;" alt="" src="Imgs/AutoSeekCameras.png">&nbsp;&nbsp;&nbsp;
<span style="font-weight: bold; text-decoration: underline;">Auto
seek Cameras<br>
</span>When <span style="font-style: italic;">Auto
seek Cameras</span> is true, the <span style="font-style: italic;">Force Camera Ratios</span>
component will search for cameras in your scene on <span style="font-style: italic;">Start()</span> and apply
the same Viewport anchor&nbsp;to each. This is the default setting.<br>
<br>
&nbsp;&nbsp;&nbsp; <span style="text-decoration: underline;"><span style="font-weight: bold;">Manual Camera Managment</span></span><img style="width: 360px; height: 340px; float: left;" alt="" src="Imgs/FinAllCameras.png"><br>
When <span style="font-style: italic;">Auto seek Cameras</span>
is false, you may manually assign and manage each Camera that needs
Letterboxing. The <span style="font-style: italic;">Find
All Cameras in scene</span> button will call <span style="font-style: italic;">FindAllCamerasInScene()</span>
filling the Camera array quickly and defaulting each Camera Anchor to <span style="font-style: italic;">Center.</span><span style="text-decoration: underline;"><span style="font-weight: bold;"><span style="text-decoration: underline;"><span style="font-weight: bold;"></span></span></span></span><span style="text-decoration: underline;"><span style="font-weight: bold;"><br>
<br>
</span></span><span style="font-weight: bold;"><span style="font-weight: bold;">&nbsp; &nbsp; </span></span><span style="font-weight: bold; text-decoration: underline;"><span style="font-weight: bold;"></span>Camera Anchor<br>
</span>The <span style="font-style: italic;">Anchor
</span>enum anchors each camera when its' resized due to a
viewport ratio recalculation. This is useful for when you have multiple
cameras on screen, for example, split screen multiplayer. By setting up
Player one's and Player two's Viewports adjacently and setting their
respective Anchors to <span style="font-style: italic;">Left</span>
and <span style="font-style: italic;">Right</span>,
the plug-in will re-calculate their ratio and seamlessly keep their
Viewports to the left and right of each other. It works similarly to
Unitys' UI Anchoring system.<br>
<br>
(For an example of this in action, try the <span style="font-style: italic;">Multi Camera Demo </span>scene
included with the package.)<br>
</div>
</div>
</div>
</td>
</tr>
<tr>
<td>
<h2 style="text-align: left; margin-left: 40px;"><a style="font-family: Helvetica,Arial,sans-serif; color: rgb(127, 118, 102); font-weight: bold;" id="displayText4" href="javascript:toggle('toggleText4', 'displayText4');">Contact</a></h2>
<div id="toggleText4" style="display: none;">
<div style="text-align: center;">
<div style="text-align: left;"><img style="width: 232px; height: 232px; float: right;" alt="" src="Imgs/mug.png">&nbsp;&nbsp;&nbsp; <span style="font-weight: bold; text-decoration: underline;">Stuck?<br>
</span>If you're having trouble or have a question, further
support is available.&nbsp;Feel free to send me an email via <a href="mailto:tom@tomsayshi.com">tom@tomsayshi.com</a>
or tweet at me via <a href="https://twitter.com/Tom_SaysHi">@Tom_SaysHi</a>.<br>
<br>
This document is still a work in progress and your experiences are very
much part of it so don't be shy! Speaking of which;<br>
<br>
&nbsp;&nbsp;&nbsp; <span style="text-decoration: underline;"><span style="font-weight: bold;">Got an Opinion?</span></span><br>
STILL feel free to e-mail me via <a href="mailto:tom@tomsayshi.com">tom@tomsayshi.com&nbsp;</a>or
tweet at me via <a href="https://twitter.com/Tom_SaysHi">@Tom_SaysHi</a>.<br>
<br>
Feedback, good or bad, is always welcome for incorporation into future
updates and products!<br>
<br>
&nbsp;&nbsp;&nbsp; <span style="text-decoration: underline;"><span style="font-weight: bold;">Hey kid, wanna' play some Video
Games?</span></span><br>
I'm just gonna' leave this <a href="http://store.steampowered.com/app/391210/">here</a>.
It's an arena game with laser swords called <span style="font-weight: bold;">Arclight Cascade</span>.
What? It's my docs and I'll plug what I want to!<br>
<br>
<h3 style="text-align: center;"><span style="text-decoration: underline;">Thank you so much for
using the Auto Letterbox Plug-in! I hope you have a swell day!</span></h3>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<div style="text-align: center;"><a href="http://tomsayshi.com"><img style="border: 0px solid ; width: 100px; height: 100px; float: right;" alt="" title="Oh to be a smol sensitive boi" src="Imgs/TomRound.png"></a><br>
<a href="http://tomsayshi.com">Written by Tom Elliott 2020</a><br>
tom@tomsayshi.com<br>
<a href="http://littlegrimlight.daportfolio.com/">Bitey Dragon Demo Art by Matthew Seprini</a><br>
</div>
</body></html>

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: a78c4b283abe78042bc2c46a182247dd
timeCreated: 1456245967
licenseType: Store
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,9 +0,0 @@
fileFormatVersion: 2
guid: 718ba5e4e877593428ce9967f1467376
folderAsset: yes
timeCreated: 1456245966
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,55 +0,0 @@
fileFormatVersion: 2
guid: 5902b9337b439e3469b5b14784bbf1ac
timeCreated: 1456245966
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -1,55 +0,0 @@
fileFormatVersion: 2
guid: a0659d40a5adaa54cae4afa7d151ac12
timeCreated: 1456245966
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

View File

@ -1,55 +0,0 @@
fileFormatVersion: 2
guid: a1a5f08fe41d99d41a5aae0e5d3ed052
timeCreated: 1456245966
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

View File

@ -1,55 +0,0 @@
fileFormatVersion: 2
guid: 34a4e878d3a371e4ea35079b7f0241b8
timeCreated: 1456245966
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -1,55 +0,0 @@
fileFormatVersion: 2
guid: 74caa4cb00b2ffc41bdec31b301b34ad
timeCreated: 1456245966
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

View File

@ -1,55 +0,0 @@
fileFormatVersion: 2
guid: cabc78253c76d3f49b4a86526622193a
timeCreated: 1456245967
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -1,55 +0,0 @@
fileFormatVersion: 2
guid: fec279ec88a252342b092b7d63bed612
timeCreated: 1456245967
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 KiB

View File

@ -1,55 +0,0 @@
fileFormatVersion: 2
guid: bd2b876221f6ff340b5adee4654a8926
timeCreated: 1456245966
licenseType: Store
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,9 +0,0 @@
fileFormatVersion: 2
guid: bb67b1e2487c1394cb27cd848223a71b
folderAsset: yes
timeCreated: 1446637250
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,87 +0,0 @@
using UnityEngine;
using UnityEditor;
using System.Collections;
using AutoLetterbox;
namespace AutoLetterbox
{
/* ForceCameraRatioEditor.cs
*
* An Editor script for ForceCameraRatio
*
* Originally made by Milo Keeble, source can be found on Github @ https://github.com/Ragepyro/EditorFileMaker */
[CustomEditor(typeof(ForceCameraRatio))]
public class ForceCameraRatioEditor : Editor
{
/// <summary>
/// Create a ForceCameraRatio Object in the current scene
/// </summary>
[MenuItem("GameObject/Create Force Camera Ratios Object", false, 11)]
public static void ForceCameraRatios () {
ForceCameraRatio myCameraForcer = new GameObject("Force Camera Ratios").AddComponent<ForceCameraRatio>();
Selection.activeGameObject = myCameraForcer.gameObject;
Undo.RegisterCreatedObjectUndo(myCameraForcer.gameObject, "Created A ForceCameraRatios Manager Obejct");
}
/// <summary>
/// Display an editor friendly interface for the ForceCameraRatio Component
/// </summary>
public override void OnInspectorGUI () {
ForceCameraRatio myTarget = (ForceCameraRatio)target;
Undo.RecordObject(myTarget, "Force Camera Ratio");
myTarget.ratio = EditorGUILayout.Vector2Field(new GUIContent("Target Viewport Ratio", "The ratio that the Letterbox will display at"), myTarget.ratio);
myTarget.forceRatioOnAwake = EditorGUILayout.Toggle(new GUIContent("Ratio on Awake", "Enable the Letterbox effect automatically on Awake"), myTarget.forceRatioOnAwake);
myTarget.listenForWindowChanges = EditorGUILayout.Toggle(new GUIContent("Ratio in Realtime", "Recalculate the Letterbox effect every time the game window is resized"), myTarget.listenForWindowChanges);
EditorGUILayout.Separator();
// Letterbox Camera
myTarget.createCameraForLetterBoxRendering = EditorGUILayout.Toggle(new GUIContent("Create Border Camera", "Generate a Camera which renders the Letterbox borders"), myTarget.createCameraForLetterBoxRendering);
if (myTarget.createCameraForLetterBoxRendering) {
myTarget.letterBoxCameraColor = EditorGUILayout.ColorField(new GUIContent("Border Color", "The color of the Letterbox borders"), myTarget.letterBoxCameraColor);
} else {
myTarget.letterBoxCamera = (Camera)EditorGUILayout.ObjectField("Letterbox Camera", myTarget.letterBoxCamera, typeof(Camera), true);
if (myTarget.letterBoxCamera == null) {
EditorGUILayout.HelpBox("Without a Letterbox Border Camera, things may render but never clear in the letterbox borders. A generated Border Camera would occupy a Camera depth of -100", MessageType.Warning);
}
}
EditorGUILayout.Separator();
// Registered Cameras for ratio calculation
myTarget.findCamerasAutomatically = EditorGUILayout.Toggle(new GUIContent("Auto seek Cameras", "If true, will automatically find all cameras in scene on Awake"), myTarget.findCamerasAutomatically);
if (myTarget.findCamerasAutomatically) {
EditorGUILayout.HelpBox("Any Cameras that exist in the scene when this script Awakes will be forced to the given aspect ratio", MessageType.Info);
} else {
if (GUILayout.Button("Find All Cameras in scene")) {
myTarget.FindAllCamerasInScene();
}
// If there is no array of cameras (as in null, empty arrays don't count) create one with the cameras in scene
if (myTarget.GetCameras() == null) {
myTarget.FindAllCamerasInScene();
}
// If ther is STILL no array of cameras, just create an empty one
if (myTarget.GetCameras() == null) {
myTarget.cameras = new System.Collections.Generic.List<CameraRatio>();
}
// Display Array of Cameras
SerializedObject serialObj = new SerializedObject(myTarget);
SerializedProperty cams = serialObj.FindProperty("cameras");
EditorGUILayout.PropertyField(cams, true);
serialObj.ApplyModifiedProperties();
EditorGUILayout.HelpBox("Only the Cameras in this array will be forced to the given aspect ratio", MessageType.Info);
}
}
}
}

View File

@ -1,12 +0,0 @@
fileFormatVersion: 2
guid: 629f2622bb706044d8955aa41abc65da
timeCreated: 1446637256
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,294 +0,0 @@
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using AutoLetterbox;
namespace AutoLetterbox
{
/* ForceCameraRatio.cs
*
* Forces the assigned Cameras to a given Aspect Ratio by Letterboxing them horizontally or vertically
*
* 2015
* Written by Tom Elliott */
// A class for tracking individual Cameras and their Viewports
[System.Serializable]
public class CameraRatio
{
public enum CameraAnchor
{
Center,
Top,
Bottom,
Left,
Right,
TopLeft,
TopRight,
BottomLeft,
BottomRight
}
[Tooltip("The Camera assigned to have an automatically calculated Viewport Ratio")]
public Camera camera;
[Tooltip("When a Camera Viewport is shrunk to fit a ratio, it will anchor the new Viewport Rectangle at the given point (relative to the original, unshrunk Viewport)")]
public CameraAnchor anchor = CameraAnchor.Center;
[HideInInspector]
public Vector2 vectorAnchor;
private Rect originViewPort;
public CameraRatio (Camera _camera, Vector2 _anchor) {
camera = _camera;
vectorAnchor = _anchor;
originViewPort = camera.rect;
}
/// <summary>
/// Sets the Camera's current Viewport as the viewport measurements to fill on resizing
/// </summary>
public void ResetOriginViewport () {
originViewPort = camera.rect;
SetAnchorBasedOnEnum(anchor);
}
/// <summary>
/// Sets the Anchor for this Camera when it is resized based on a given enum description
/// </summary>
/// <param name="_anchor"></param>
public void SetAnchorBasedOnEnum (CameraAnchor _anchor) {
switch (_anchor) {
case CameraAnchor.Center:
vectorAnchor = new Vector2(0.5f, 0.5f);
break;
case CameraAnchor.Top:
vectorAnchor = new Vector2(0.5f, 1f);
break;
case CameraAnchor.Bottom:
vectorAnchor = new Vector2(0.5f, 0f);
break;
case CameraAnchor.Left:
vectorAnchor = new Vector2(0f, 0.5f);
break;
case CameraAnchor.Right:
vectorAnchor = new Vector2(1f, 0.5f);
break;
case CameraAnchor.TopLeft:
vectorAnchor = new Vector2(0f, 1f);
break;
case CameraAnchor.TopRight:
vectorAnchor = new Vector2(1f, 1f);
break;
case CameraAnchor.BottomLeft:
vectorAnchor = new Vector2(0f, 0f);
break;
case CameraAnchor.BottomRight:
vectorAnchor = new Vector2(1f, 0f);
break;
}
}
/// <summary>
/// Forces a camera to render at a given ratio
/// Creates a letter box effect if the new viewport does not match the current Window ratio
/// </summary>
/// <param name="_targetAspect"></param>
/// <param name="_currentAspect"></param>
public void CalculateAndSetCameraRatio (float _width, float _height, bool _horizontalLetterbox) {
Rect localViewPort = new Rect();
// Force the viewport to a width and height accurate to the target ratio
if (_horizontalLetterbox) { // current aspect is wider than target aspect so shorten down height of the viewport
localViewPort.height = _height;
localViewPort.width = 1;
} else { // current aspect is taller than target aspect so thin down width of the viewport
localViewPort.height = 1f;
localViewPort.width = _width;
}
// Resize and position the viewport to fit in it's original position on screen (adhering to a given anchor point)
Rect screenViewPortHorizontal = new Rect();
Rect screenViewPortVertical = new Rect();
// Calculate both a horizontally and vertically resized viewport
screenViewPortHorizontal.width = originViewPort.width;
screenViewPortHorizontal.height = originViewPort.width * (localViewPort.height / localViewPort.width);
screenViewPortHorizontal.x = originViewPort.x;
screenViewPortHorizontal.y = Mathf.Lerp(originViewPort.y, originViewPort.y + (originViewPort.height - screenViewPortHorizontal.height), vectorAnchor.y);
screenViewPortVertical.width = originViewPort.height * (localViewPort.width / localViewPort.height);
screenViewPortVertical.height = originViewPort.height;
screenViewPortVertical.x = Mathf.Lerp(originViewPort.x, originViewPort.x + (originViewPort.width - screenViewPortVertical.width), vectorAnchor.x);
screenViewPortVertical.y = originViewPort.y;
// Use the best fitting of the two
if (screenViewPortHorizontal.height >= screenViewPortVertical.height && screenViewPortHorizontal.width >= screenViewPortVertical.width) {
if (screenViewPortHorizontal.height <= originViewPort.height && screenViewPortHorizontal.width <= originViewPort.width) {
camera.rect = screenViewPortHorizontal;
} else {
camera.rect = screenViewPortVertical;
}
} else {
if (screenViewPortVertical.height <= originViewPort.height && screenViewPortVertical.width <= originViewPort.width) {
camera.rect = screenViewPortVertical;
} else {
camera.rect = screenViewPortHorizontal;
}
}
}
}
// A class for tracking all cameras in a scene
[System.Serializable]
public class ForceCameraRatio : MonoBehaviour
{
public Vector2 ratio = new Vector2(16, 9);
public bool forceRatioOnAwake = true;
public bool listenForWindowChanges = true;
public bool createCameraForLetterBoxRendering = true;
public bool findCamerasAutomatically = true;
public Color letterBoxCameraColor = new Color(0, 0, 0, 1);
public List<CameraRatio> cameras;
public Camera letterBoxCamera;
private void Start () {
// If no cameras have been assigned in editor, search for cameras in the scene
if (findCamerasAutomatically) {
FindAllCamerasInScene();
} else if (cameras == null || cameras.Count == 0) {
cameras = new List<CameraRatio>();
}
ValidateCameraArray();
// Set the origin viewport space for each Camera
for (int i = 0; i < cameras.Count; i++) {
cameras[i].ResetOriginViewport();
}
// If requested, a Camera will be generated that renders a letter box Color
if (createCameraForLetterBoxRendering) {
letterBoxCamera = new GameObject().AddComponent<Camera>();
letterBoxCamera.backgroundColor = letterBoxCameraColor;
letterBoxCamera.cullingMask = 0;
letterBoxCamera.depth = -100;
letterBoxCamera.farClipPlane = 1;
letterBoxCamera.useOcclusionCulling = false;
letterBoxCamera.allowHDR = false;
letterBoxCamera.clearFlags = CameraClearFlags.Color;
letterBoxCamera.name = "Letter Box Camera";
for (int i = 0; i < cameras.Count; i++) {
if (cameras[i].camera.depth == -100) {
Debug.LogError(cameras[i].camera.name + " has a depth of -100 and may conflict with the Letter Box Camera in Forced Camera Ratio!");
}
}
}
if (forceRatioOnAwake) {
CalculateAndSetAllCameraRatios();
}
}
private void Update () {
if (listenForWindowChanges) {
// Recalculate the viewport size if the window size has changed
CalculateAndSetAllCameraRatios();
if (letterBoxCamera != null) {
letterBoxCamera.backgroundColor = letterBoxCameraColor;
}
}
}
/// <summary>
/// Returns the container class for a Camera and it's ratio by the _camera it contains
/// Returns null if the given _camera is not being tracked
/// </summary>
/// <param name="_camera"></param>
/// <returns></returns>
private CameraRatio GetCameraRatioByCamera (Camera _camera) {
if (cameras == null) {
return null;
}
for (int i = 0; i < cameras.Count; i++) {
if (cameras[i] != null && cameras[i].camera == _camera) {
return cameras[i];
}
}
return null;
}
/// <summary>
/// Removes any null elements from the CameraRatio Array
/// </summary>
private void ValidateCameraArray() {
for (int i = cameras.Count - 1; i >= 0; i--) {
if (cameras[i].camera == null) {
cameras.RemoveAt(i);
}
}
}
/// <summary>
/// Populates the tracked Camera Array with every Camera currently in the scene
/// </summary>
public void FindAllCamerasInScene () {
Camera[] allCameras = FindObjectsOfType<Camera>();
cameras = new List<CameraRatio>();
for (int i = 0; i < allCameras.Length; i++) {
if ((createCameraForLetterBoxRendering || allCameras[i] != letterBoxCamera)) { // Ignore the Custom LetterBox Camera
cameras.Add(new CameraRatio(allCameras[i], new Vector2(0.5f, 0.5f)));
}
}
}
/// <summary>
/// Loops through all cameras in scene (or that have been set in editor)
/// Forces each camera to render at a given ratio
/// Creates a letter box effect if the new viewport does not match the current Window ratio
/// </summary>
public void CalculateAndSetAllCameraRatios () {
float targetAspect = ratio.x / ratio.y;
float currentAspect = ((float)Screen.width) / ((float)Screen.height);
bool horizontalLetterbox = false;
float fullWidth = targetAspect / currentAspect;
float fullHeight = currentAspect / targetAspect;
if (currentAspect > targetAspect) {
horizontalLetterbox = false;
}
for (int i = 0; i < cameras.Count; i++) {
cameras[i].SetAnchorBasedOnEnum(cameras[i].anchor);
cameras[i].CalculateAndSetCameraRatio(fullWidth, fullHeight, horizontalLetterbox);
}
}
/// <summary>
/// Set the anchor for a given Camera
/// </summary>
/// <param name="_camera"></param>
/// <param name="_anchor"></param>
public void SetCameraAnchor (Camera _camera, Vector2 _anchor) {
CameraRatio camera = GetCameraRatioByCamera(_camera);
if (camera != null) {
camera.vectorAnchor = _anchor;
}
}
public CameraRatio[] GetCameras () {
if (cameras == null) {
cameras = new List<CameraRatio>();
}
return cameras.ToArray();
}
}
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: e188ee899633d0b49870a5ae38b7359d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: -200
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,377 +0,0 @@
using UnityEngine;
using System.Collections;
using System.Linq.Expressions;
using System.Reflection;
using System;
namespace AutoLetterbox {
/* Util.cs
*
* Utility Class with multiple use mathmatical functions
*
* Written by Tom Elliott and Milo Keeble */
public static class Util {
public static string GrootWhatAreYouDoing() {
return "I am Groot.";
}
/// <summary>
/// Returns a value as a positive number
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static float AsPositive(float value) {
return Mathf.Abs(value);
}
/// <summary>
/// Returns a value as a negative number
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static float AsNegative(float value) {
return -Mathf.Abs(value);
}
/// <summary>
/// Bezier Interpolation between multiple points
/// </summary>
public static float BezierCurve(float[] p, float t) {
if (p.Length > 2) {
float[] newPoints = new float[p.Length - 1];
for (int i = 0; i < newPoints.Length; i++) {
newPoints[i] = Lerp(p[i], p[i + 1], t);
}
return BezierCurve(newPoints, t);
} else if (p.Length == 2) {
return Lerp(p[0], p[1], t);
} else {
Debug.Log("WARNING: A class attempted to get a Bezier Curve with less than two points!");
return 0;
}
}
/// <summary>
/// Bezier Interpolation between multiple points
/// </summary>
public static Vector3 BezierCurve(Vector3[] p, float t) {
if (p.Length > 2) {
Vector3[] newPoints = new Vector3[p.Length - 1];
for (int i = 0; i < newPoints.Length; i++) {
newPoints[i] = Lerp(p[i], p[i + 1], t);
}
return BezierCurve(newPoints, t);
} else if (p.Length == 2) {
return Lerp(p[0], p[1], t);
} else {
//Debug.Log("WARNING: A class attempted to get a Bezier Curve with less than two points!");
return Vector3.zero;
}
}
/// <summary>
/// Takes an existing velocity and a point of collision relative to the center of the object traveling
/// Returns a new, reflected velocity
/// (Rough estimate, should be considered inacurrate until a truer calculation is implemented)
/// </summary>
/// <param name="originalVelocity"></param>
/// <param name="normalOfCollision"></param>
/// <returns></returns>
public static Vector3 CalculateReflectedVelocity(Vector3 originalVelocity, Vector3 normalOfCollision) {
Vector3 hitDirection = -normalOfCollision;
Vector3 newDirection = originalVelocity.normalized;
newDirection = new Vector3(newDirection.x - hitDirection.x, newDirection.y - hitDirection.y, 0);
if (newDirection.sqrMagnitude == 0f) {
newDirection = -originalVelocity.normalized;
}
return newDirection;
}
/// <summary>
/// Returns a value no greater than max and no less than min
/// </summary>
/// <param name="min"></param>
/// <param name="max"></param>
/// <param name="value"></param>
/// <returns></returns>
public static float Clamp(float min, float max, float value) {
value = (value < min) ? min : value;
value = (value > max) ? max : value;
return value;
}
/// <summary>
/// Returns a value no greater than max and no less than min
/// </summary>
/// <param name="min"></param>
/// <param name="max"></param>
/// <param name="value"></param>
/// <returns></returns>
public static int Clamp(int min, int max, int value) {
value = (value < min) ? min : value;
value = (value > max) ? max : value;
return value;
}
/// <summary>
/// Converts a unity color to a hex string
/// </summary>
/// <param name="color">Color to convert, can be Color as well as Color32</param>
/// <returns>A hex string of the passed in color</returns>
public static string ColorToHex(Color32 color) {
string hex = color.r.ToString("X2") + color.g.ToString("X2") + color.b.ToString("X2");
return hex;
}
/// <summary>
/// Converts an angle in Degrees to a Vector2
/// </summary>
/// <returns>The converted Vector2</returns>
/// <param name="_angle">Angle in Degrees</param>
public static Vector2 DegreesToVector(float _angle) {
return new Vector2((float)Math.Cos(_angle * Mathf.Deg2Rad), (float)Math.Sin(_angle * Mathf.Deg2Rad));
}
/// <summary>
/// Returns the float difference between a and b
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public static float Difference(float a, float b) {
return (a > b) ? a - b : b - a;
}
/// <summary>
/// Returns the integer difference between a and b
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public static int Difference(int a, int b) {
return (a > b) ? a - b : b - a;
}
/// <summary>
/// Returns a normalized direction vector pointing at target from origin
/// </summary>
public static Vector3 DirectionVector(Vector3 origin, Vector3 target) {
return (target - origin).normalized;
}
/// <summary>
/// Outputs a custom error message from sender
/// Use this to keep error messages consistent
/// </summary>
public static void Error(object sender, string error) {
if (sender != null) {
Debug.Log(sender.GetType().ToString() + ": " + error);
} else {
Debug.Log("NULL SENDER: " + error);
}
}
/// <summary>
/// Returns the code given name of the variable
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="expression"></param>
/// <returns></returns>
public static string GetMemberName<T>(Expression<Func<T>> expression) {
MemberExpression body = (MemberExpression)expression.Body;
return body.Member.Name;
}
/// <summary>
/// Converts a hex string to a unity color
/// </summary>
/// <param name="hex">The hex string to convert</param>
/// <returns>A Color of the passed in Hex String</returns>
public static Color HexToColor(string hex) {
byte r = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
byte g = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
byte b = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
return new Color32(r, g, b, 255);
}
/// <summary>
/// Returns the flag number for an int
/// </summary>
/// <param name="_index"></param>
/// <returns></returns>
public static int IndexToFlags(int _index) {
switch (_index) {
case 0: return 1;
case 1: return 2;
case 2: return 4;
case 3: return 8;
case 4: return 16;
case 5: return 32;
case 6: return 64;
case 7: return 128;
case 8: return 256;
case 9: return 512;
default: return -1;
}
}
/// <summary>
/// Returns true if the given integer is odd
/// Returns false if the given integer is even
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool IsOdd(int value) {
return value % 2 != 0;
}
/// <summary>
/// Linear Interpolation between two points
/// </summary>
public static Vector3 Lerp(Vector3 p1, Vector3 p2, float t) {
return p1 + (p2 - p1) * t;
}
/// <summary>
/// Linear Interpolation between two points
/// </summary>
public static float Lerp(float p1, float p2, float t) {
return p1 + (p2 - p1) * t;
}
/// <summary>
/// Outputs an error message from sender stating that variableName is null
/// Use this to keep error messages consistent
/// </summary>
public static void NullError(object sender, string variableName, string extraNotes = "") {
if (sender == null) {
Debug.Log("NULL SENDER: " + variableName + " is null! " + extraNotes);
} else {
Debug.Log(sender.GetType().ToString() + ": " + variableName + " is null! " + extraNotes);
}
}
/// <summary>
/// Returns value as a percentage of max - min clamped between 0 and 1
/// </summary>
/// <param name="min"></param>
/// <param name="max"></param>
/// <param name="value"></param>
/// <returns></returns>
public static float Percent(float min, float max, float value) {
if (max - min == 0) {
//Debug.Log("WARNING: A class attempted to find a percentage of 0!");
return 0f;
}
return Clamp(0f, 1f, (value - min) / (max - min));
}
/// <summary>
/// Returns value as an unclamped percentage of max - min
/// </summary>
/// <param name="min"></param>
/// <param name="max"></param>
/// <param name="value"></param>
/// <returns></returns>
public static float PercentUnclampled(float min, float max, float value) {
if (max - min == 0) {
Debug.Log("WARNING: A class attempted to find an unclamped percentage of 0!");
return 0f;
}
return (value - min) / (max - min);
}
/// <summary>
/// Takes 2 rectangles and tests if they intersect
/// </summary>
/// <param name="extremeMinA"></param>
/// <param name="extremeMaxA"></param>
/// <param name="extremeMinB"></param>
/// <param name="extremeMaxB"></param>
/// <returns></returns>
public static bool RectContainsRect(Vector2 extremeMinA, Vector2 extremeMaxA, Vector2 extremeMinB, Vector2 extremeMaxB) {
if (extremeMinA.y > extremeMaxB.y || extremeMaxA.y < extremeMinB.y ||
extremeMinA.x > extremeMaxB.x || extremeMaxA.x < extremeMinB.x) {
return false;
} else {
return true;
}
}
/// <summary>
/// Returns a vector3 reflected on the X axis
/// </summary>
/// <param name="_vector"></param>
/// <returns></returns>
public static Vector3 ReflectOnXAxis(Vector3 _vector) {
_vector.x = -_vector.x;
return _vector;
}
/// <summary>
/// Returns a vector3 reflected on the X and Y axis
/// </summary>
/// <param name="_vector"></param>
/// <returns></returns>
public static Vector3 ReflectOnXandYAxis(Vector3 _vector) {
_vector.x = -_vector.x;
_vector.y = -_vector.y;
return _vector;
}
/// <summary>
/// Returns a vector3 reflected on the Y axis
/// </summary>
/// <param name="_vector"></param>
/// <returns></returns>
public static Vector3 ReflectOnYAxis(Vector3 _vector) {
_vector.y = -_vector.y;
return _vector;
}
/// <summary>
/// Converts a Vector2 to an angle in Degrees
/// </summary>
/// <returns>The angle in degrees.</returns>
/// <param name="_vector">A vector2 to convert</param>
public static float VectorToDegrees(Vector2 _vector) {
float deg = (float)Mathf.Atan2(_vector.y, _vector.x) * Mathf.Rad2Deg;
return (deg > 0) ? deg : deg + 360f;
}
/// <summary>
/// Returns 'up' as if the X and Y axis where ground plane (Rather than X and Z)
/// </summary>
/// <returns></returns>
public static Vector3 XYplaneUpDirection() {
return new Vector3(0, 0, -1);
}
/// <summary>
/// Returns true if the given point is on screen via the main Camera
/// </summary>
/// <returns></returns>
public static bool IsPointOnMainCamera(Vector3 _point) {
if (Camera.main == null) { return false; }
Vector3 screenPoint = Camera.main.WorldToScreenPoint(_point);
if (screenPoint.x < 0 || screenPoint.y > Screen.width || screenPoint.y < 0 || screenPoint.y > Screen.height) {
return false;
} else {
return true;
}
}
//HexToColor & ColorToHex Shamelessly taken from wiki.unity3d.com/index.php?title=HexConverter, Written by mvi?
}
}

View File

@ -1,12 +0,0 @@
fileFormatVersion: 2
guid: 8a561f82163dc584094296e9eb0a53af
timeCreated: 1447429093
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -89,7 +89,85 @@ MonoBehaviour:
m_EditorClassIdentifier:
canvas: {fileID: 1168123228960484818}
overlayView: {fileID: 2814421364062256314}
ambientBg: {fileID: 4779885053979786433}
ambientBgGO: {fileID: 487891016983371717}
letterboxBgGO: {fileID: 3931965693507761463}
camera: {fileID: 16338400879174842}
--- !u!1 &487891016983371717
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5542434965229488069}
- component: {fileID: 8173528814729516857}
- component: {fileID: 4779885053979786433}
m_Layer: 31
m_Name: LetterboxGlow
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5542434965229488069
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 487891016983371717}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 2525279720671331054}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 30, y: 22}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8173528814729516857
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 487891016983371717}
m_CullTransparentMesh: 1
--- !u!114 &4779885053979786433
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 487891016983371717}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 0
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 8be59c4bde4258c429ac39251f5f681b, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 3
--- !u!1 &2814421364062256314
GameObject:
m_ObjectHideFlags: 0
@ -120,7 +198,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1850376182743320724}
m_RootOrder: 1
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -173,6 +251,7 @@ GameObject:
- component: {fileID: 1168123228960484818}
- component: {fileID: 1574772130180899299}
- component: {fileID: 974770566238864437}
- component: {fileID: 8162533768185923031}
m_Layer: 31
m_Name: GameView
m_TagString: Untagged
@ -192,7 +271,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1850376182743320724}
m_RootOrder: 0
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -234,7 +313,25 @@ MonoBehaviour:
y: 0
width: 1
height: 1
--- !u!1 &5584137290458315811
--- !u!114 &8162533768185923031
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2832441949350437337}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b8ee60af491978345bc197ed4e1316bc, type: 3}
m_Name:
m_EditorClassIdentifier:
MaskArea: {fileID: 9126116407185073410}
AlphaMask: {fileID: 0}
CutOff: 0
HardBlend: 0
FlipAlphaMask: 0
DontClipMaskScalingRect: 0
--- !u!1 &3931965693507761463
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -242,49 +339,74 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 455520442982280351}
- component: {fileID: 6060748659854770895}
m_Layer: 0
m_Name: LetterboxFullscreen
- component: {fileID: 2525279720671331054}
- component: {fileID: 8799463193646473118}
- component: {fileID: 5790641063361568266}
m_Layer: 31
m_Name: LetterboxBG
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &455520442982280351
Transform:
m_IsActive: 1
--- !u!224 &2525279720671331054
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5584137290458315811}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_GameObject: {fileID: 3931965693507761463}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 6234653029009288364}
m_RootOrder: 4
m_Children:
- {fileID: 5542434965229488069}
m_Father: {fileID: 1850376182743320724}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &6060748659854770895
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8799463193646473118
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3931965693507761463}
m_CullTransparentMesh: 1
--- !u!114 &5790641063361568266
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5584137290458315811}
m_GameObject: {fileID: 3931965693507761463}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e188ee899633d0b49870a5ae38b7359d, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
ratio: {x: 16, y: 9}
forceRatioOnAwake: 1
listenForWindowChanges: 1
createCameraForLetterBoxRendering: 0
findCamerasAutomatically: 1
letterBoxCameraColor: {r: 0, g: 0, b: 0, a: 1}
cameras: []
letterBoxCamera: {fileID: 5997098664667581191}
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 0
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 501845c08f33b374490e069f771bba33, type: 3}
m_Type: 2
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 0
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1024
--- !u!1 &6234653028281991659
GameObject:
m_ObjectHideFlags: 0
@ -488,13 +610,11 @@ Transform:
- {fileID: 6234653028281991656}
- {fileID: 1942359490671534657}
- {fileID: 4590016237509569025}
- {fileID: 455520442982280351}
- {fileID: 3022914124654306410}
- {fileID: 1850376182743320724}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &7745146194305554249
--- !u!1 &7252983913051326197
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -502,72 +622,73 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3022914124654306410}
- component: {fileID: 5997098664667581191}
m_Layer: 0
m_Name: LetterboxBgCam
- component: {fileID: 9126116407185073410}
- component: {fileID: 9182755598382872870}
- component: {fileID: 3596148951806340129}
m_Layer: 31
m_Name: LetterboxMask
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3022914124654306410
Transform:
--- !u!224 &9126116407185073410
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7745146194305554249}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10}
m_GameObject: {fileID: 7252983913051326197}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 6234653029009288364}
m_RootOrder: 5
m_Father: {fileID: 1850376182743320724}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &5997098664667581191
Camera:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 16, y: 9}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &9182755598382872870
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7745146194305554249}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 1
orthographic size: 5
m_Depth: -100
m_CullingMask:
serializedVersion: 2
m_Bits: 0
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
m_GameObject: {fileID: 7252983913051326197}
m_CullTransparentMesh: 1
--- !u!114 &3596148951806340129
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7252983913051326197}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 0
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &8244570575520829750
GameObject:
m_ObjectHideFlags: 0
@ -593,20 +714,22 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8244570575520829750}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalScale: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 2525279720671331054}
- {fileID: 9126116407185073410}
- {fileID: 1168123228960484818}
- {fileID: 8313606602379655831}
m_Father: {fileID: 6234653029009288364}
m_RootOrder: 6
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 16, y: 9}
m_Pivot: {x: 0.5, y: 0.5}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!223 &559692565600295811
Canvas:
m_ObjectHideFlags: 0
@ -616,8 +739,8 @@ Canvas:
m_GameObject: {fileID: 8244570575520829750}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 0}
m_RenderMode: 1
m_Camera: {fileID: 16338400879174842}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
@ -640,17 +763,17 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_ReferenceResolution: {x: 16, y: 9}
m_ScreenMatchMode: 1
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 1
m_PresetInfoIsWorld: 0
--- !u!1 &8463691957270393964
GameObject:
m_ObjectHideFlags: 0

View File

@ -371,6 +371,71 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &267833937518529379
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 352916495994336378}
- component: {fileID: 6114264849829068695}
m_Layer: 5
m_Name: LetterboxToggle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &352916495994336378
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 267833937518529379}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.99994, y: 0.99994, z: 0.99994}
m_Children:
- {fileID: 4694534756629889673}
- {fileID: 3114553210599439120}
- {fileID: 3361920161722488605}
m_Father: {fileID: 6414734252487272423}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 1165, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &6114264849829068695
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 267833937518529379}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 10
m_Bottom: 10
m_ChildAlignment: 0
m_Spacing: 10
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &306542115621893098
GameObject:
m_ObjectHideFlags: 0
@ -1260,6 +1325,81 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &817526481568329400
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4044636343879897205}
- component: {fileID: 182450033526317201}
- component: {fileID: 1040502515913046277}
m_Layer: 5
m_Name: Checkmark
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4044636343879897205
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 817526481568329400}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 2893130788615028402}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &182450033526317201
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 817526481568329400}
m_CullTransparentMesh: 1
--- !u!114 &1040502515913046277
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 817526481568329400}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &840567209939088497
GameObject:
m_ObjectHideFlags: 0
@ -2175,6 +2315,103 @@ MonoBehaviour:
m_BoolArgument: 0
m_CallState: 2
m_IsOn: 1
--- !u!1 &1430368104849623649
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3067777520871423963}
- component: {fileID: 2017189606605254942}
m_Layer: 5
m_Name: Toggle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3067777520871423963
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1430368104849623649}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.0001401, y: 1.0001401, z: 1.0001401}
m_Children:
- {fileID: 3128526663869996574}
m_Father: {fileID: 3361920161722488605}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 72, y: 0}
m_SizeDelta: {x: 30, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2017189606605254942
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1430368104849623649}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 4327981795078394609}
toggleTransition: 1
graphic: {fileID: 9181083077042070195}
m_Group: {fileID: 0}
onValueChanged:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 3551660278321604313}
m_TargetAssemblyTypeName: HeavenStudio.Editor.GameSettings, Assembly-CSharp
m_MethodName: OnLetterboxFxToggleChanged
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_IsOn: 1
--- !u!1 &1452536591337448871
GameObject:
m_ObjectHideFlags: 0
@ -3677,6 +3914,7 @@ RectTransform:
- {fileID: 8800668829680167042}
- {fileID: 7445086984111591383}
- {fileID: 7199445264310719903}
- {fileID: 352916495994336378}
- {fileID: 1074170538819331136}
m_Father: {fileID: 4476710119336366620}
m_RootOrder: 0
@ -3798,6 +4036,82 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -20, y: -20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &2620003491082431659
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2893130788615028402}
- component: {fileID: 8378394852367537837}
- component: {fileID: 6363884616114744193}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2893130788615028402
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2620003491082431659}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 4044636343879897205}
m_Father: {fileID: 3114553210599439120}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8378394852367537837
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2620003491082431659}
m_CullTransparentMesh: 1
--- !u!114 &6363884616114744193
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2620003491082431659}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2633347408960074492
GameObject:
m_ObjectHideFlags: 0
@ -7308,6 +7622,82 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &5117436000112914737
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3128526663869996574}
- component: {fileID: 4030131893416810351}
- component: {fileID: 4327981795078394609}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3128526663869996574
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5117436000112914737}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1281277023310204088}
m_Father: {fileID: 3067777520871423963}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4030131893416810351
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5117436000112914737}
m_CullTransparentMesh: 1
--- !u!114 &4327981795078394609
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5117436000112914737}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &5122822255999134598
GameObject:
m_ObjectHideFlags: 0
@ -7840,6 +8230,215 @@ MonoBehaviour:
m_ChildScaleWidth: 1
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &5370742787773874061
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1281277023310204088}
- component: {fileID: 464191656592492622}
- component: {fileID: 9181083077042070195}
m_Layer: 5
m_Name: Checkmark
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1281277023310204088
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5370742787773874061}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 3128526663869996574}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &464191656592492622
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5370742787773874061}
m_CullTransparentMesh: 1
--- !u!114 &9181083077042070195
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5370742787773874061}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &5474229787441619233
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1537969916687496039}
- component: {fileID: 1649322182949413597}
- component: {fileID: 6348351324099256715}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1537969916687496039
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5474229787441619233}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 3361920161722488605}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 5, y: 0}
m_SizeDelta: {x: 140, y: 0}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &1649322182949413597
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5474229787441619233}
m_CullTransparentMesh: 1
--- !u!114 &6348351324099256715
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5474229787441619233}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Ambient Glow
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8597c35f18a008c428fc5870aec75766, type: 2}
m_sharedMaterial: {fileID: -6562250930271150993, guid: 8597c35f18a008c428fc5870aec75766, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 20.35
m_fontSizeBase: 20
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 3
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &5593382937094478603
GameObject:
m_ObjectHideFlags: 0
@ -8617,6 +9216,103 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 0
--- !u!1 &6114692273114020759
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3114553210599439120}
- component: {fileID: 4396709347257482799}
m_Layer: 5
m_Name: Toggle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3114553210599439120
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6114692273114020759}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.0001401, y: 1.0001401, z: 1.0001401}
m_Children:
- {fileID: 2893130788615028402}
m_Father: {fileID: 352916495994336378}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 30, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4396709347257482799
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6114692273114020759}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 6363884616114744193}
toggleTransition: 1
graphic: {fileID: 1040502515913046277}
m_Group: {fileID: 0}
onValueChanged:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 3551660278321604313}
m_TargetAssemblyTypeName: HeavenStudio.Editor.GameSettings, Assembly-CSharp
m_MethodName: OnLetterboxBgToggleChanged
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_IsOn: 1
--- !u!1 &6118722517562076529
GameObject:
m_ObjectHideFlags: 0
@ -9926,6 +10622,140 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &6811085378966164574
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4694534756629889673}
- component: {fileID: 8818928346121624557}
- component: {fileID: 6437321073210906305}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4694534756629889673
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6811085378966164574}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.0000798, y: 1.0000798, z: 1.0000798}
m_Children: []
m_Father: {fileID: 352916495994336378}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 426, y: 30}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &8818928346121624557
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6811085378966164574}
m_CullTransparentMesh: 1
--- !u!114 &6437321073210906305
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6811085378966164574}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Letterbox Background
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8597c35f18a008c428fc5870aec75766, type: 2}
m_sharedMaterial: {fileID: -6562250930271150993, guid: 8597c35f18a008c428fc5870aec75766, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 32
m_fontSizeBase: 32
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 3
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &6909211924654611250
GameObject:
m_ObjectHideFlags: 0
@ -10548,6 +11378,8 @@ MonoBehaviour:
perfectChallengeToggle: {fileID: 8086743803918982011}
sectionMedalsToggle: {fileID: 58433279425435319}
timingDispMinModeToggle: {fileID: 4906402620624022633}
letterboxBgEnable: {fileID: 4396709347257482799}
letterboxFxEnable: {fileID: 2017189606605254942}
ElementNameText: {fileID: 5693523784224329242}
ElementToggle: {fileID: 6363628182054740200}
XPosInput: {fileID: 1651071714595890500}
@ -12223,7 +13055,7 @@ RectTransform:
- {fileID: 6333297351521765582}
- {fileID: 5761262922024577280}
m_Father: {fileID: 6414734252487272423}
m_RootOrder: 4
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -12294,6 +13126,43 @@ MonoBehaviour:
m_ChildScaleWidth: 1
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &8662617062451633817
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3361920161722488605}
m_Layer: 5
m_Name: AmbiTogle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3361920161722488605
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8662617062451633817}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1537969916687496039}
- {fileID: 3067777520871423963}
m_Father: {fileID: 352916495994336378}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 190, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &8779530651065665115
GameObject:
m_ObjectHideFlags: 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

View File

@ -1,12 +1,12 @@
fileFormatVersion: 2
guid: c757ae881ebd49f4ead172947a2e1ffa
guid: 501845c08f33b374490e069f771bba33
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 1
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
@ -23,6 +23,7 @@ TextureImporter:
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@ -31,32 +32,35 @@ TextureImporter:
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
spriteMeshType: 0
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
spriteGenerateFallbackPhysicsShape: 0
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
@ -71,13 +75,25 @@ TextureImporter:
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,108 @@
fileFormatVersion: 2
guid: 8be59c4bde4258c429ac39251f5f681b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 31, y: 31, z: 31, w: 31}
spriteGenerateFallbackPhysicsShape: 0
alphaUsage: 2
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -23,7 +23,6 @@ namespace HeavenStudio
public string txt;
public string ext;
public Camera GameCamera, CursorCam, OverlayCamera, StaticCamera;
public GameObject GameLetterbox;
public CircleCursor CircleCursor;
[HideInInspector] public GameObject GamesHolder;
public Games.Global.Flash fade;
@ -743,9 +742,16 @@ namespace HeavenStudio
public void SetCurrentGame(string game)
{
currentGame = game;
if (GetGameInfo(currentGame) != null) CircleCursor.InnerCircle.GetComponent<SpriteRenderer>().color = Colors.Hex2RGB(GetGameInfo(currentGame).color);
if (GetGameInfo(currentGame) != null)
{
CircleCursor.InnerCircle.GetComponent<SpriteRenderer>().color = Colors.Hex2RGB(GetGameInfo(currentGame).color);
HeavenStudio.StaticCamera.instance.SetAmbientGlowColour(Colors.Hex2RGB(GetGameInfo(currentGame).color));
}
else
{
CircleCursor.InnerCircle.GetComponent<SpriteRenderer>().color = Color.white;
HeavenStudio.StaticCamera.instance.SetAmbientGlowColour(Color.black);
}
}
private bool SongPosLessThanClipLength(float t)

View File

@ -13,7 +13,7 @@ namespace HeavenStudio.Games
public class PlayerActionEvent : PlayerActionObject
{
public static bool EnableAutoplayCheat = false;
public static bool EnableAutoplayCheat = true;
public delegate void ActionEventCallback(PlayerActionEvent caller);
public delegate void ActionEventCallbackState(PlayerActionEvent caller, float state);

View File

@ -33,7 +33,7 @@ namespace HeavenStudio
public static int ScreenSizeIndex = 0;
public static float MasterVolume = 0.8f;
public static int currentDspSize = 256;
public static int currentDspSize = 512;
public static int currentSampleRate = 44100;
public static readonly int[] DSP_BUFFER_SIZES =
{
@ -73,7 +73,7 @@ namespace HeavenStudio
ChangeMasterVolume(PersistentDataManager.gameSettings.masterVolume);
if (PersistentDataManager.gameSettings.dspSize == 0)
PersistentDataManager.gameSettings.dspSize = 256;
PersistentDataManager.gameSettings.dspSize = 512;
if (PersistentDataManager.gameSettings.sampleRate == 0)
PersistentDataManager.gameSettings.sampleRate = 44100;
currentDspSize = PersistentDataManager.gameSettings.dspSize;
@ -193,11 +193,23 @@ namespace HeavenStudio
public static void ResetGameRenderTexture()
{
GameRenderTexture.width = Screen.width;
GameRenderTexture.height = Screen.height;
// keep 16:9 aspect ratio
int width = Screen.width;
int height = Screen.height;
if (width / 16f > height / 9f)
{
width = (int)(height / 9f * 16f);
}
else
{
height = (int)(width / 16f * 9f);
}
OverlayRenderTexture.width = Screen.width;
OverlayRenderTexture.height = Screen.height;
GameRenderTexture.width = width;
GameRenderTexture.height = height;
OverlayRenderTexture.width = width;
OverlayRenderTexture.height = height;
}
public static void ChangeMasterVolume(float value)

View File

@ -74,7 +74,6 @@ namespace HeavenStudio
gameManager.CursorCam = CursorCamera.GetComponent<Camera>();
gameManager.OverlayCamera = OverlayCamera.GetComponent<Camera>();
gameManager.StaticCamera = StaticCamera.GetComponent<Camera>();
gameManager.GameLetterbox = GameLetterbox;
GameObject Profiler = Instantiate(Resources.Load<GameObject>("Prefabs/GameProfiler"));
Profiler.name = "GameProfiler";

View File

@ -14,17 +14,17 @@ namespace HeavenStudio.InputSystem
//KeyCode[] mappings = new KeyCode[Enum.GetNames(typeof(ButtonsPad)).Length];
KeyCode[] mappings = new KeyCode[]
{
KeyCode.UpArrow,
KeyCode.DownArrow,
KeyCode.LeftArrow,
KeyCode.RightArrow,
KeyCode.X,
KeyCode.Z,
KeyCode.C,
KeyCode.V,
KeyCode.S,
KeyCode.D,
KeyCode.Return,
KeyCode.W, // dpad up
KeyCode.S, // dpad down
KeyCode.A, // dpad left
KeyCode.D, // dpad right
KeyCode.K, // south face button
KeyCode.J, // east face button
KeyCode.I, // west face button
KeyCode.U, // north face button
KeyCode.C, // left shoulder button
KeyCode.N, // right shoulder button
KeyCode.Return, // start button
};
InputDirection hatDirectionCurrent;
@ -90,13 +90,13 @@ namespace HeavenStudio.InputSystem
switch (direction)
{
case InputDirection.Up:
return Input.GetKey(KeyCode.UpArrow);
return Input.GetKey(mappings[0]);
case InputDirection.Down:
return Input.GetKey(KeyCode.DownArrow);
return Input.GetKey(mappings[1]);
case InputDirection.Left:
return Input.GetKey(KeyCode.LeftArrow);
return Input.GetKey(mappings[2]);
case InputDirection.Right:
return Input.GetKey(KeyCode.RightArrow);
return Input.GetKey(mappings[3]);
default:
return false;
}
@ -107,13 +107,13 @@ namespace HeavenStudio.InputSystem
switch (direction)
{
case InputDirection.Up:
return Input.GetKeyDown(KeyCode.UpArrow);
return Input.GetKeyDown(mappings[0]);
case InputDirection.Down:
return Input.GetKeyDown(KeyCode.DownArrow);
return Input.GetKeyDown(mappings[1]);
case InputDirection.Left:
return Input.GetKeyDown(KeyCode.LeftArrow);
return Input.GetKeyDown(mappings[2]);
case InputDirection.Right:
return Input.GetKeyDown(KeyCode.RightArrow);
return Input.GetKeyDown(mappings[3]);
default:
return false;
}
@ -124,13 +124,13 @@ namespace HeavenStudio.InputSystem
switch (direction)
{
case InputDirection.Up:
return Input.GetKeyUp(KeyCode.UpArrow);
return Input.GetKeyUp(mappings[0]);
case InputDirection.Down:
return Input.GetKeyUp(KeyCode.DownArrow);
return Input.GetKeyUp(mappings[1]);
case InputDirection.Left:
return Input.GetKeyUp(KeyCode.LeftArrow);
return Input.GetKeyUp(mappings[2]);
case InputDirection.Right:
return Input.GetKeyUp(KeyCode.RightArrow);
return Input.GetKeyUp(mappings[3]);
default:
return false;
}

View File

@ -30,9 +30,6 @@ namespace HeavenStudio.Editor
[SerializeField] public Canvas MainCanvas;
[SerializeField] public Camera EditorCamera;
// [SerializeField] public GameObject EditorLetterbox;
public GameObject GameLetterbox;
[Header("Rect")]
[SerializeField] private RenderTexture ScreenRenderTexture;
[SerializeField] private RawImage Screen;
@ -96,7 +93,6 @@ namespace HeavenStudio.Editor
{
GameManager.instance.StaticCamera.targetTexture = ScreenRenderTexture;
GameManager.instance.CursorCam.targetTexture = ScreenRenderTexture;
GameLetterbox = GameManager.instance.GameLetterbox;
Screen.texture = ScreenRenderTexture;
GameManager.instance.Init();
@ -122,6 +118,7 @@ namespace HeavenStudio.Editor
BuildDateDisplay.text = GlobalGameManager.buildTime;
isCursorEnabled = PersistentDataManager.gameSettings.editorCursorEnable;
isDiscordEnabled = PersistentDataManager.gameSettings.discordRPCEnable;
GameManager.instance.CursorCam.enabled = isCursorEnabled;
}
public void AddIcon(Minigames.Minigame minigame)
@ -495,9 +492,6 @@ namespace HeavenStudio.Editor
MainCanvas.gameObject.SetActive(fullscreen);
if (fullscreen == false)
{
// EditorLetterbox.SetActive(false);
GameLetterbox.SetActive(true);
MainCanvas.enabled = false;
EditorCamera.enabled = false;
GameManager.instance.StaticCamera.targetTexture = null;
@ -507,9 +501,6 @@ namespace HeavenStudio.Editor
}
else
{
// EditorLetterbox.SetActive(true);
GameLetterbox.SetActive(false);
MainCanvas.enabled = true;
EditorCamera.enabled = true;
GameManager.instance.StaticCamera.targetTexture = ScreenRenderTexture;

View File

@ -20,7 +20,7 @@ namespace HeavenStudio.Editor
{
Editor.instance.isCursorEnabled = cursorCheckbox.isOn;
PersistentDataManager.gameSettings.editorCursorEnable = cursorCheckbox.isOn;
if (!Editor.instance.fullscreen)
if (Editor.instance != null && !Editor.instance.fullscreen)
{
GameManager.instance.CursorCam.enabled = Editor.instance.isCursorEnabled;
}
@ -34,6 +34,8 @@ namespace HeavenStudio.Editor
public override void OnOpenTab()
{
cursorCheckbox.isOn = PersistentDataManager.gameSettings.editorCursorEnable;
discordRPCCheckbox.isOn = PersistentDataManager.gameSettings.discordRPCEnable;
}
public override void OnCloseTab()

View File

@ -18,6 +18,8 @@ namespace HeavenStudio.Editor
[SerializeField] Toggle perfectChallengeToggle;
[SerializeField] Toggle sectionMedalsToggle;
[SerializeField] Toggle timingDispMinModeToggle;
[SerializeField] Toggle letterboxBgEnable;
[SerializeField] Toggle letterboxFxEnable;
[Header("Layout Settings - Header")]
[SerializeField] TMP_Text ElementNameText;
@ -93,6 +95,18 @@ namespace HeavenStudio.Editor
PersistentDataManager.gameSettings.timingDisplayMinMode = timingDispMinModeToggle.isOn;
}
public void OnLetterboxBgToggleChanged()
{
PersistentDataManager.gameSettings.letterboxBgEnable = letterboxBgEnable.isOn;
StaticCamera.instance.ToggleLetterboxBg(PersistentDataManager.gameSettings.letterboxBgEnable);
}
public void OnLetterboxFxToggleChanged()
{
PersistentDataManager.gameSettings.letterboxFxEnable = letterboxFxEnable.isOn;
StaticCamera.instance.ToggleLetterboxGlow(PersistentDataManager.gameSettings.letterboxFxEnable);
}
public override void OnOpenTab()
{
TimingDispTypeDropdown.ClearOptions();
@ -102,6 +116,8 @@ namespace HeavenStudio.Editor
perfectChallengeToggle.isOn = PersistentDataManager.gameSettings.perfectChallengeType != PersistentDataManager.PerfectChallengeType.Off;
sectionMedalsToggle.isOn = PersistentDataManager.gameSettings.isMedalOn;
timingDispMinModeToggle.isOn = PersistentDataManager.gameSettings.timingDisplayMinMode;
letterboxBgEnable.isOn = PersistentDataManager.gameSettings.letterboxBgEnable;
letterboxFxEnable.isOn = PersistentDataManager.gameSettings.letterboxFxEnable;
if (PersistentDataManager.gameSettings.timingDisplayComponents.Count == 0 &&
PersistentDataManager.gameSettings.skillStarComponents.Count == 0 &&

View File

@ -28,13 +28,15 @@ namespace HeavenStudio.Common
GlobalGameManager.DEFAULT_SCREEN_SIZES[1].width,
GlobalGameManager.DEFAULT_SCREEN_SIZES[1].height,
0.8f,
256,
512,
44100,
true,
true,
PerfectChallengeType.On,
true,
false
false,
true,
true
);
// disable if platform is mac
@ -99,14 +101,16 @@ namespace HeavenStudio.Common
int resolutionWidth = 1280,
int resolutionHeight = 720,
float masterVolume = 0.8f,
int dspSize = 256,
int dspSize = 512,
int sampleRate = 44100,
bool editorCursorEnable = true,
bool discordRPCEnable = true,
PerfectChallengeType perfectChallengeType = PerfectChallengeType.On,
bool isMedalOn = true,
bool timingDisplayMinMode = false,
bool overlaysInEditor = true
bool overlaysInEditor = true,
bool letterboxBgEnable = true,
bool letterboxFxEnable = true
)
{
this.isFullscreen = isFullscreen;
@ -129,6 +133,8 @@ namespace HeavenStudio.Common
this.isMedalOn = isMedalOn;
this.timingDisplayMinMode = timingDisplayMinMode;
this.overlaysInEditor = overlaysInEditor;
this.letterboxBgEnable = true;
this.letterboxFxEnable = true;
this.timingDisplayComponents = new List<OverlaysManager.TimingDisplayComponent>()
{
@ -164,6 +170,8 @@ namespace HeavenStudio.Common
public bool isMedalOn;
public bool timingDisplayMinMode;
public bool overlaysInEditor;
public bool letterboxBgEnable;
public bool letterboxFxEnable;
public List<OverlaysManager.TimingDisplayComponent> timingDisplayComponents;
public List<OverlaysManager.SkillStarComponent> skillStarComponents;
public List<OverlaysManager.SectionComponent> sectionComponents;

View File

@ -4,6 +4,7 @@ using UnityEngine;
using UnityEngine.UI;
using HeavenStudio.Util;
using HeavenStudio.Common;
namespace HeavenStudio
{
@ -11,6 +12,11 @@ namespace HeavenStudio
{
[SerializeField] RectTransform canvas;
[SerializeField] GameObject overlayView;
[SerializeField] Image ambientBg;
[SerializeField] GameObject ambientBgGO;
[SerializeField] GameObject letterboxBgGO;
public static StaticCamera instance { get; private set; }
public new Camera camera;
@ -56,6 +62,9 @@ namespace HeavenStudio
panLast = defaultPan;
scaleLast = defaultScale;
rotationLast = defaultRotation;
ToggleLetterboxBg(PersistentDataManager.gameSettings.letterboxBgEnable);
ToggleLetterboxGlow(PersistentDataManager.gameSettings.letterboxFxEnable);
}
public void OnBeatChanged(float beat)
@ -197,5 +206,20 @@ namespace HeavenStudio
{
overlayView.SetActive(toggle);
}
public void SetAmbientGlowColour(Color colour)
{
ambientBg.color = colour;
}
public void ToggleLetterboxBg(bool toggle)
{
letterboxBgGO.SetActive(toggle);
}
public void ToggleLetterboxGlow(bool toggle)
{
ambientBgGO.SetActive(toggle);
}
}
}

View File

@ -81,15 +81,12 @@ namespace HeavenStudio.Common
foreach (var c in lytElements)
{
if (c is TimingDisplayComponent) {
Debug.Log("TimingDisplayComponent");
c.CreateElement(TimingDisplayPrefab, ComponentHolder);
}
else if (c is SkillStarComponent) {
Debug.Log("SkillStarComponent");
c.CreateElement(SkillStarPrefab, ComponentHolder);
}
else if (c is SectionComponent) {
Debug.Log("SectionComponent");
c.CreateElement(ChartSectionPrefab, ComponentHolder);
}
c.PositionElement();