Files
2026-03-04 10:03:45 +08:00

157 lines
4.7 KiB
C#

using UnityEngine;
public class Swan : MonoBehaviour
{
private Animator swan;
public GameObject MainCamera;
private bool CapsLockOn = true;
public GameObject plane;
public GameObject water;
private void Start()
{
swan = GetComponent<Animator>();
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.CapsLock))
{
CapsLockOn = !CapsLockOn;
}
if (swan.GetCurrentAnimatorStateInfo(0).IsName("idle"))
{
swan.SetBool("landing", value: false);
swan.SetBool("takeoff", value: false);
swan.SetBool("fly", value: false);
swan.SetBool("swimleft", value: false);
swan.SetBool("swimright", value: false);
swan.SetBool("swim", value: false);
}
if (Input.GetKeyUp(KeyCode.W) || Input.GetKeyUp(KeyCode.F) || Input.GetKeyUp(KeyCode.A) || Input.GetKeyUp(KeyCode.D))
{
swan.SetBool("idle", value: true);
swan.SetBool("walk", value: false);
swan.SetBool("glide", value: false);
swan.SetBool("fly", value: true);
swan.SetBool("flyleft", value: false);
swan.SetBool("flyright", value: false);
swan.SetBool("turnleft", value: false);
swan.SetBool("turnright", value: false);
swan.SetBool("swim", value: false);
swan.SetBool("swimleft", value: false);
swan.SetBool("swimright", value: false);
swan.SetBool("idle2", value: false);
plane.GetComponent<MeshRenderer>().enabled = true;
water.GetComponent<MeshRenderer>().enabled = false;
}
if (Input.GetKeyDown(KeyCode.W))
{
swan.SetBool("walk", value: true);
swan.SetBool("idle", value: false);
}
if (Input.GetKeyDown(KeyCode.Space))
{
swan.SetBool("idle", value: false);
swan.SetBool("takeoff", value: true);
}
if (Input.GetKeyDown(KeyCode.Space))
{
swan.SetBool("fly", value: false);
swan.SetBool("landing", value: true);
}
if (Input.GetKeyDown(KeyCode.F))
{
swan.SetBool("glide", value: true);
swan.SetBool("fly", value: false);
}
if (Input.GetKeyDown(KeyCode.A))
{
swan.SetBool("flyleft", value: true);
swan.SetBool("fly", value: false);
swan.SetBool("turnleft", value: true);
swan.SetBool("idle", value: false);
}
if (Input.GetKeyDown(KeyCode.D))
{
swan.SetBool("flyright", value: true);
swan.SetBool("fly", value: false);
swan.SetBool("turnright", value: true);
swan.SetBool("idle", value: false);
}
if (Input.GetKeyUp(KeyCode.W) && !CapsLockOn)
{
swan.SetBool("idle2", value: true);
swan.SetBool("idle", value: false);
swan.SetBool("swim", value: false);
swan.SetBool("swimleft", value: false);
swan.SetBool("swimright", value: false);
plane.GetComponent<MeshRenderer>().enabled = false;
water.GetComponent<MeshRenderer>().enabled = true;
}
if (Input.GetKeyUp(KeyCode.A) && !CapsLockOn)
{
swan.SetBool("idle2", value: true);
swan.SetBool("idle", value: false);
swan.SetBool("swim", value: false);
swan.SetBool("swimleft", value: false);
swan.SetBool("swimright", value: false);
plane.GetComponent<MeshRenderer>().enabled = false;
water.GetComponent<MeshRenderer>().enabled = true;
}
if (Input.GetKeyUp(KeyCode.D) && !CapsLockOn)
{
swan.SetBool("idle2", value: true);
swan.SetBool("idle", value: false);
swan.SetBool("swim", value: false);
swan.SetBool("swimleft", value: false);
swan.SetBool("swimright", value: false);
plane.GetComponent<MeshRenderer>().enabled = false;
water.GetComponent<MeshRenderer>().enabled = true;
}
if (Input.GetKeyDown(KeyCode.W) && !CapsLockOn)
{
swan.SetBool("swim", value: true);
swan.SetBool("idle", value: false);
swan.SetBool("walk", value: false);
swan.SetBool("idle2", value: false);
plane.GetComponent<MeshRenderer>().enabled = false;
water.GetComponent<MeshRenderer>().enabled = true;
}
if (Input.GetKeyDown(KeyCode.A) && !CapsLockOn)
{
swan.SetBool("swimleft", value: true);
swan.SetBool("swimright", value: false);
swan.SetBool("swim", value: false);
swan.SetBool("turnleft", value: false);
swan.SetBool("idle", value: false);
swan.SetBool("idle2", value: false);
plane.GetComponent<MeshRenderer>().enabled = false;
water.GetComponent<MeshRenderer>().enabled = true;
}
if (Input.GetKeyDown(KeyCode.D) && !CapsLockOn)
{
swan.SetBool("swimleft", value: false);
swan.SetBool("swimright", value: true);
swan.SetBool("swim", value: false);
swan.SetBool("turnright", value: false);
swan.SetBool("idle", value: false);
swan.SetBool("idle2", value: false);
plane.GetComponent<MeshRenderer>().enabled = false;
water.GetComponent<MeshRenderer>().enabled = true;
}
if (Input.GetKeyDown(KeyCode.RightControl))
{
MainCamera.GetComponent<CameraFollow>().enabled = false;
}
if (Input.GetKeyUp(KeyCode.RightControl))
{
MainCamera.GetComponent<CameraFollow>().enabled = true;
}
}
}