104 lines
2.4 KiB
C#
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;
|
|
}
|
|
}
|
|
} |