Tune tutorial coin arcs and finish flow
This commit is contained in:
@@ -1,12 +1,15 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
#endif
|
||||
|
||||
public enum FinishGateStyle {
|
||||
None,
|
||||
AirportDeparture,
|
||||
JapanTorii,
|
||||
ChinaPaifang,
|
||||
AmericaRoadSign
|
||||
AmericaLiberty
|
||||
}
|
||||
|
||||
public class FinishGate : MonoBehaviour {
|
||||
@@ -75,8 +78,8 @@ public class FinishGate : MonoBehaviour {
|
||||
case FinishGateStyle.ChinaPaifang:
|
||||
BuildChinaPaifang();
|
||||
break;
|
||||
case FinishGateStyle.AmericaRoadSign:
|
||||
BuildAmericaRoadSign();
|
||||
case FinishGateStyle.AmericaLiberty:
|
||||
BuildAmericaLibertyFallback();
|
||||
break;
|
||||
case FinishGateStyle.AirportDeparture:
|
||||
default:
|
||||
@@ -98,19 +101,7 @@ public class FinishGate : MonoBehaviour {
|
||||
return false;
|
||||
}
|
||||
|
||||
Sprite sprite = Resources.Load<Sprite>(resourcePath);
|
||||
if(sprite == null)
|
||||
{
|
||||
Texture2D texture = Resources.Load<Texture2D>(resourcePath);
|
||||
if(texture != null)
|
||||
{
|
||||
sprite = Sprite.Create(
|
||||
texture,
|
||||
new Rect(0f, 0f, texture.width, texture.height),
|
||||
new Vector2(0.5f, 0.5f),
|
||||
RuntimeSpritePixelsPerUnit);
|
||||
}
|
||||
}
|
||||
Sprite sprite = LoadGateSprite(resourcePath);
|
||||
|
||||
if(sprite == null)
|
||||
{
|
||||
@@ -129,10 +120,55 @@ public class FinishGate : MonoBehaviour {
|
||||
float spriteHeight = Mathf.Max(0.01f, sprite.bounds.size.y);
|
||||
float scale = targetHeight / spriteHeight;
|
||||
spriteObject.transform.localScale = new Vector3(scale, scale, 1f);
|
||||
spriteObject.transform.localPosition = new Vector3(0f, targetHeight * 0.5f, 0f);
|
||||
spriteObject.transform.localPosition = new Vector3(0f, targetHeight * 0.5f - GetSpriteGateBottomInset(style), 0f);
|
||||
return true;
|
||||
}
|
||||
|
||||
private Sprite LoadGateSprite(string resourcePath) {
|
||||
Sprite sprite = Resources.Load<Sprite>(resourcePath);
|
||||
if(sprite != null)
|
||||
{
|
||||
return sprite;
|
||||
}
|
||||
|
||||
Sprite[] sprites = Resources.LoadAll<Sprite>(resourcePath);
|
||||
if(sprites != null && sprites.Length > 0 && sprites[0] != null)
|
||||
{
|
||||
return sprites[0];
|
||||
}
|
||||
|
||||
Texture2D texture = Resources.Load<Texture2D>(resourcePath);
|
||||
if(texture != null)
|
||||
{
|
||||
return CreateRuntimeSprite(texture);
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
string assetPath = "Assets/Resources/" + resourcePath + ".png";
|
||||
sprite = AssetDatabase.LoadAssetAtPath<Sprite>(assetPath);
|
||||
if(sprite != null)
|
||||
{
|
||||
return sprite;
|
||||
}
|
||||
|
||||
texture = AssetDatabase.LoadAssetAtPath<Texture2D>(assetPath);
|
||||
if(texture != null)
|
||||
{
|
||||
return CreateRuntimeSprite(texture);
|
||||
}
|
||||
#endif
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private Sprite CreateRuntimeSprite(Texture2D texture) {
|
||||
return Sprite.Create(
|
||||
texture,
|
||||
new Rect(0f, 0f, texture.width, texture.height),
|
||||
new Vector2(0.5f, 0.5f),
|
||||
RuntimeSpritePixelsPerUnit);
|
||||
}
|
||||
|
||||
private string GetSpriteResourcePath(FinishGateStyle style) {
|
||||
switch(style)
|
||||
{
|
||||
@@ -142,8 +178,8 @@ public class FinishGate : MonoBehaviour {
|
||||
return "FinishGate_Japan_Torii";
|
||||
case FinishGateStyle.ChinaPaifang:
|
||||
return "FinishGate_China_Paifang";
|
||||
case FinishGateStyle.AmericaRoadSign:
|
||||
return "FinishGate_America_Highway";
|
||||
case FinishGateStyle.AmericaLiberty:
|
||||
return "FinishGate_America_Liberty";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
@@ -154,13 +190,23 @@ public class FinishGate : MonoBehaviour {
|
||||
{
|
||||
case FinishGateStyle.ChinaPaifang:
|
||||
return 4.65f;
|
||||
case FinishGateStyle.AmericaRoadSign:
|
||||
case FinishGateStyle.AmericaLiberty:
|
||||
return 4.45f;
|
||||
default:
|
||||
return 4.35f;
|
||||
}
|
||||
}
|
||||
|
||||
private float GetSpriteGateBottomInset(FinishGateStyle style) {
|
||||
switch(style)
|
||||
{
|
||||
case FinishGateStyle.JapanTorii:
|
||||
return 0.36f;
|
||||
default:
|
||||
return 0f;
|
||||
}
|
||||
}
|
||||
|
||||
private void BuildAirportDepartureGate() {
|
||||
Color navy = new Color(0.05f, 0.2f, 0.34f, 1f);
|
||||
Color blue = new Color(0.08f, 0.42f, 0.67f, 1f);
|
||||
@@ -212,7 +258,7 @@ public class FinishGate : MonoBehaviour {
|
||||
CreateBlock("Paifang Lantern Right", new Vector2(0.78f, 2.18f), new Vector2(0.26f, 0.34f), red, 7);
|
||||
}
|
||||
|
||||
private void BuildAmericaRoadSign() {
|
||||
private void BuildAmericaLibertyFallback() {
|
||||
Color metal = new Color(0.48f, 0.56f, 0.58f, 1f);
|
||||
Color green = new Color(0.03f, 0.38f, 0.22f, 1f);
|
||||
Color yellow = new Color(1f, 0.8f, 0.18f, 1f);
|
||||
|
||||
Reference in New Issue
Block a user