簡體   English   中英

Unity3D:iTween oncomplete無法正常工作

[英]Unity3D: iTween oncomplete not working

我正在開發Unity2游戲,我想讓Boom在iTween動畫的結尾消失。

這是代碼的一部分

void OnMouseDown() {    

    if (ChosePosition == false)
        ChosePosition = true;

    // make Star stop
    else if (ChosePosition == true && ChoseForce == false) {
        ChoseForce = true;
        //Compute Force power 
        PowerDegree = Mathf.Abs (Star.transform.position.y - StarPosition)/ Mathf.Abs(StarendPosition - StarPosition) * 100;

        //print (PowerDegree);

        Vector3 NewBoomPostion = new Vector3 (Luncher.transform.position.x, BoomPosition, 85);

        GameObject newBoom = Instantiate(Boom, NewBoomPostion , Quaternion.identity) as GameObject;
        iTween.MoveTo (newBoom, iTween.Hash 
            ("y",BoomPosition+((BoomendPosition-BoomPosition)/100*PowerDegree),
            "speed",Boomspeed,
            "EaseType",BoomeaseType,
            "LoopType",BoomloopType,
            "oncomplete","BoomComplete"
            ));


        CarrierReset = true;
        ChosePosition  = false;
        ChoseForce = false;

        //After Shot, Luncher will move
        iTween.Resume(Luncher);

        //After Shot, Luncher Carrier will display
        displayCarrierOrNot = true;
    }
}


void BoomComplete(){
    print("complete");
}

但是我在控制台中看不到“完成”。

關於Unity Answers的這篇文章描述了您遇到問題的原因:

默認情況下,iTween嘗試在要設置動畫的對象上調用您提供的回調方法-在您的情況下為mainCamera.gameObject 由於“ onCameraShakeComplete ”不駐留在該對象上,因此永遠不會被調用。 你有兩個選擇:把這個方法到您的mainCamera.gameObject或簡單地提供AM“ onCompleteTarget的” gameObject告訴的ITween為使用設立這個的ITween游戲對象。

在您的情況下,它要設置動畫的對象是newBoom ,但是您在自己的組件上有回調。 要使iTween使用當前的回調,可以在Hash調用中添加一個參數:

iTween.MoveTo (newBoom, iTween.Hash(
    // ...
    "oncomplete", "BoomComplete",
    "oncompletetarget", gameObject
    ));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM