亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Unity 防止點擊 1s

Unity 防止點擊 1s

C#
繁華開滿天機 2023-07-09 09:43:51
我有一個 Unity Slidepuzzle 游戲(4x4),我檢查開放區域要移動到哪里。我嘗試使用 MoveTowards 制作幻燈片動畫,效果很好,但現在我遇到的問題是,當我單擊開放空間旁邊的兩塊(快速)時,兩者都會移入其中,因為該塊不完全在那里,因此光線無法移動打任何東西。PS:它可以在沒有動畫的情況下工作,但我只是不希望這些碎片只是傳送。我想要一個平滑的幻燈片。我嘗試用布爾值解決它,這樣當我單擊它時,移動設置為 true,當動畫完成時再次設置為 false,但這不起作用。void MovePuzzle()    {        float duration = 0.5f;        if(go_left)        {            Vector3 endPos1 = new Vector3(transform.position.x - move_amount.x, transform.position.y, transform.position.z);            StartCoroutine(MoveTowards(endPos1, duration));            go_left = false;            moved = true;        }        if (go_right)        {            Vector3 endPos2 = new Vector3(transform.position.x + move_amount.x, transform.position.y, transform.position.z);            StartCoroutine(MoveTowards(endPos2, duration));            go_right = false;            moved = true;        }        if (go_up)        {            Vector3 endPos3 = new Vector3(transform.position.x, transform.position.y + move_amount.y, transform.position.z);            StartCoroutine(MoveTowards(endPos3, duration));            go_up = false;            moved = true;        }        if (go_down)        {            Vector3 endPos4 = new Vector3(transform.position.x, transform.position.y - move_amount.y, transform.position.z);            StartCoroutine(MoveTowards(endPos4, duration));             go_down = false;            moved = true;        }    }    IEnumerator MoveTowards(Vector3 toPosition, float duration)    {        float counter = 0;        while (counter < duration)        {            counter += Time.deltaTime;            Vector3 currentPos = transform.position;            float time = Vector3.Distance(currentPos, toPosition) / (duration - counter) * Time.deltaTime;            transform.position = Vector3.MoveTowards(currentPos, toPosition, time);            Debug.Log(counter + " / " + duration);            yield return null;        }    }在幻燈片動畫完成之前是否有辦法限制點擊?我對 Unity 還比較陌生,所以不要指望我能提供太多知識 :D。
查看完整描述

1 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

你說你用布爾值嘗試過,但沒有成功。我認為如果做得正確,它應該有效。

在 MovePuzzle() 的第一行中寫入:

if (moved)
{
    return;
}

然后,在 while 塊之后(因此在其外部),寫入:

moved = false;

那么您可能應該將其重命名為 isMoving 。


查看完整回答
反對 回復 2023-07-09
  • 1 回答
  • 0 關注
  • 142 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號