OldBlueWater/BlueWater/Assets/Blobcreate/Projectile Toolkit/Demos/Scripts/03 Cannon-Like Weapons/UIHandler.cs
2023-08-10 17:23:04 +09:00

104 lines
2.4 KiB
C#

using UnityEngine;
using UnityEngine.UI;
namespace Blobcreate.ProjectileToolkit.Demo
{
public class UIHandler : MonoBehaviour
{
public CannonLike launcher;
public CannonLike launcher2;
public Canvas byAngle;
public Canvas bySpeed;
public Canvas angleMode;
public Canvas angleMode2;
public Text angleText;
public Text speedText;
public Text index1;
public Text index2;
public Text index3;
Canvas currentCanvas;
Text currentIndexText;
bool isDoubleLauncher;
void Update()
{
if (Input.GetKeyDown(KeyCode.Alpha1))
{
launcher.type = CannonLike.LaunchType.VelocityByAngle;
launcher2.type = CannonLike.LaunchType.VelocityByAngle;
ChangeCanvas(byAngle, index1);
}
else if (Input.GetKeyDown(KeyCode.Alpha2))
{
launcher.type = CannonLike.LaunchType.AnglesBySpeed;
launcher2.type = CannonLike.LaunchType.AnglesBySpeed;
ChangeCanvas(bySpeed, index2);
}
else if (Input.GetKeyDown(KeyCode.Alpha3))
{
launcher.type = CannonLike.LaunchType.VelocitiesBySpeed;
launcher2.type = CannonLike.LaunchType.VelocitiesBySpeed;
ChangeCanvas(bySpeed, index3);
}
if (Input.GetKeyDown(KeyCode.D))
{
isDoubleLauncher = !isDoubleLauncher;
launcher2.gameObject.SetActive(isDoubleLauncher);
ChangeCanvas(currentCanvas, currentIndexText);
}
}
void ChangeCanvas(Canvas c, Text t)
{
if (currentIndexText != null)
currentIndexText.enabled = false;
currentIndexText = t;
currentIndexText.enabled = true;
if (currentCanvas != null)
currentCanvas.enabled = false;
currentCanvas = c;
currentCanvas.enabled = true;
if (currentCanvas == bySpeed)
{
angleMode.enabled = true;
angleMode2.enabled = isDoubleLauncher;
}
else
{
angleMode.enabled = false;
angleMode2.enabled = false;
}
}
public void ChangeLaunchAngle(float angle)
{
launcher.launchAngle = angle;
launcher2.launchAngle = angle;
angleText.text = "Launch Angle: " + angle.ToString() + "°";
}
public void ChangeLaunchSpeed(float speed)
{
launcher.launchSpeed = speed;
launcher2.launchSpeed = speed;
speedText.text = "Launch Speed: " + speed.ToString() + " m/s";
}
public void ChooseAngleMode(bool useHighAngle)
{
launcher.useHighAngle = useHighAngle;
launcher.useLowAngle = !useHighAngle;
}
public void ChooseAngleMode2(bool useHighAngle)
{
launcher2.useHighAngle = useHighAngle;
launcher2.useLowAngle = !useHighAngle;
}
}
}