我想做到这一点,一旦点击一个按钮就会产生一些东西,当你再次点击它时,它会产生其他东西。
using UnityEngine;
using System.Collections;
public class Ai : MonoBehaviour {
bool stopstate = false;
Animator _anim;
// Use this for initialization
void Start () {
_anim = GetComponent<Animator> ();
//_animation = GetComponent<Animation> ();
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.Z)) {
if (stopstate == false) {
stopstate = true;
_anim.Stop ();
} else {
stopstate = false;
_anim.StartPlayback ();
}
}
}
}
一旦我点击了Z Stop()但是如果我再次在Z上按下它就播放。
问题是代码在Update函数中,所以当我按下它停在_anim.StartPlayback()上的Z键后我使用断点;但它应该在第二次点击Z时到达。
第二个问题是它行_anim.StartPlayback();它并没有使角色从停止的角度继续行走。
_anim.Stop();真的阻止了它,但StartPlayback()没有让它继续。
答案 0 :(得分:1)
最适合您的选项是CheckBox
在前端创建一个复选框(让它为chkToggle
),然后使用以下代码将其外观更改为按钮(初始化后或在页面中)负荷):
chkToggle.Appearance = System.Windows.Forms.Appearance.Button;
所以它就像前端的按钮一样。然后,如果选中它,您可以使用以下代码执行某些操作,如果未选中则执行其他操作。
private void chkToggle_CheckedChanged(object sender, EventArgs e)
{
if((sender as CheckBox).Checked)
{
// Do something
}
else
{
// Do other thing
}
}
如果它是单个方法,那么您可以使用类型为boolean
的全局变量来保持状态并切换它们;然后代码将如下所示:
bool currentState; // false will be the default value
void Update ()
{
if(currentState)
{
// Dosomething
}
else
{
// Do some other thing
}
currentState = !currentState; // toggle the state
}