我正在实施卡片匹配游戏。
首次部署卡后将发送事件。
public void cardFlipStateUpdate()
{
foreach (Card card in cardAllInformation[current_pageNumber])
{
GameObject card_gameObj = cardAllGameObject[current_pageNumber][card.cardIndex] as GameObject;
int c_idx = card.cardIndex;
int c_uidx = card.cardUniqueIndex;
float delay_s = c_idx * 0.15f;
float delay_r = 2.5f + c_idx * 0.15f;
TouchEventManager.Instance.dispatch(c_idx, c_uidx, card_gameObj, card, true, "none", delay_s);
TouchEventManager.Instance.dispatch(c_idx, c_uidx, card_gameObj, card, true, "cardSelectionCriteria", delay_r);
}
}
public void onTuchHandler(object obj, EventArgs e)
{
TouchEventTypes t_evt = e as TouchEventTypes;
WordReviewUtil.cardFlipAnimation(t_evt.card_idx, t_evt.card_selectNum, t_evt.go, t_evt.card, t_evt.init, t_evt.complete, t_evt.delay);
}
以下是接收上述事件的代码。
public static void cardFlipAnimation(int card_idx, int card_selectNum, GameObject gobj, Card card, bool init = false, string complete = "cardDifferentiate", float delay = 0f)
{
Hashtable data = new Hashtable();
// Debug.Log("cardFlipAnimation Receive Param >> " + card_idx + " / " + card_selectNum + " / " + gobj + " / ");
// Debug.Log("cardFlipAnimation Receive Param >> " + card + " / " + init + " / " + complete + " / " + delay);
// Debug.Log("============================================================================================");
data.Add("gobj", gobj);
data.Add("card", card);
Hashtable run_hash = new Hashtable();
run_hash.Add("y", 0.5);
run_hash.Add("time", 0.7);
run_hash.Add("delay", delay);
run_hash.Add("easetype", iTween.EaseType.easeInOutCubic);
run_hash.Add("onupdate", "test");
run_hash.Add("onupdatetarget", gobj);
run_hash.Add("onupdateparams", data);
run_hash.Add("oncomplete", complete);
run_hash.Add("oncompletetarget", gobj);
//Debug.Log("run_hash >> " + run_hash);
iTween.RotateBy(gobj, run_hash);
}
我创建了一个临时函数来检查上面的代码是否运行良好。 ((" onupdate"," test");)
public void test()
{
Debug.Log("hello Moto~~");
}
但是日志无法验证。
我无法找到原因。
你写错了什么?以及如何解决?
您的意见很有价值。请帮帮我。
答案 0 :(得分:0)
我相信你正在创建哈希表,假设iTween使用标准的哈希表,但它从来没有对我有用。尝试使用此代码调用RotateBy:
iTween.RotateBy( gobj, iTween.Hash(
"y", 0.5,
"time", 0.7,
"delay", delay,
"easetype", iTween.EaseType.easeInOutCubic,
"onupdate", "test",
"onupdatetarget", gobj,
"onupdateparams", data,
"oncomplete", complete,
"oncompletetarget", gobj
));
编辑:代码中的方法Test
没有参数,而在这里你要传递data
作为参数:这将打破它。