修改已下代码,要求按下数鼠标左键后播放一次动画attack,即传入1,动画播放结束则传入0,如果播放动画途中再次按下鼠标左键,则在动画attack中传入2,如果在动画图中再次按下鼠标左键,则再次传入1,以此类推,如果动画动画结束后,则传入0,using System.Collections; using System.Collections.Generic; using UnityEngine; public class Playerctrl : MonoBehaviour { private Animator ani; private float timer = 0f; private int attack_num = 0; private bool flyTrigger = false; // 添加一个布尔变量记录Fly动画的Trigger状态 private int attackTrigger = 0; // 添加一个整型变量记录attack动画的Trigger状态 void Start() { ani = GetComponent<Animator>(); } void Update() { if (Input.GetKeyDown(KeyCode.Space)) // 使用GetKeyDown检测空格键的双击 { if (!flyTrigger) // 如果Fly动画的Trigger为false,则将其设置为true { ani.SetBool("Fly", true); flyTrigger = true; } else // 如果Fly动画的Trigger为true,则将其设置为false { ani.SetBool("Fly", false); flyTrigger = false; } } if (Input.GetMouseButtonDown(0)) // 使用GetMouseButtonDown检测鼠标左键的点击 { attackTrigger += 1; ani.SetInteger("attack", attackTrigger); /* if (attackTrigger==3) { attackTrigger = 1; ani.SetInteger("attack", attackTrigger); } */ } /**/ } }
时间: 2023-06-12 13:04:25 浏览: 181
修改后的代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Playerctrl : MonoBehaviour
{
private Animator ani;
private float timer = 0f;
private bool flyTrigger = false; // 添加一个布尔变量记录Fly动画的Trigger状态
private int attackTrigger = 0; // 添加一个整型变量记录attack动画的Trigger状态
void Start()
{
ani = GetComponent<Animator>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space)) // 使用GetKeyDown检测空格键的双击
{
if (!flyTrigger) // 如果Fly动画的Trigger为false,则将其设置为true
{
ani.SetBool("Fly", true);
flyTrigger = true;
}
else // 如果Fly动画的Trigger为true,则将其设置为false
{
ani.SetBool("Fly", false);
flyTrigger = false;
}
}
if (Input.GetMouseButtonDown(0)) // 使用GetMouseButtonDown检测鼠标左键的点击
{
if (attackTrigger == 0) // 如果attack动画未播放,则传入1,播放attack动画
{
attackTrigger = 1;
ani.SetInteger("attack", attackTrigger);
}
else if (attackTrigger == 1) // 如果attack动画正在播放,则传入2,继续播放attack动画
{
attackTrigger = 2;
ani.SetInteger("attack", attackTrigger);
}
}
if (ani.GetCurrentAnimatorStateInfo(0).IsName("attack") && ani.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1.0f) // 如果attack动画播放结束,则传入0,结束attack动画
{
attackTrigger = 0;
ani.SetInteger("attack", attackTrigger);
}
}
}
修改后的代码在鼠标左键点击时,会根据attackTrigger变量的值来播放或继续播放attack动画。在动画播放结束时,会将attackTrigger变量重置为0,以便下一次点击鼠标左键时重新开始播放attack动画。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)