//点击效果 private void TweenImage(OnImage onImage, Action action) { GameObject objSelect = Util.FindPeer(onImage.gameObject, "ImgSelect"); if (null == objSelect) { return; } var imgSelect = objSelect.GetComponent <Image>(); objSelect.SetActive(true); imgSelect.color = Color.clear; Sequence mySequence = DOTween.Sequence(); Tweener color1 = imgSelect.DOColor(Color.white, 0.25f); Tweener color2 = imgSelect.DOColor(Color.clear, 0.3f); mySequence.Append(color1); mySequence.AppendInterval(0.05f); mySequence.Append(color2); mySequence.OnComplete(delegate() { action.Invoke(); mySequence.Kill(); objSelect.SetActive(false); }); }
/// <summary> /// 单击建筑 /// </summary> /// <param name="gameObj"></param> private void OnItemClick(OnImage onImage, VoMapItem voMapItem) { Util.Log("触发坐标:{0:G},{1:G}", voMapItem.position.x, voMapItem.position.y); void WorldMove() { Util.CallMethod(name, "WorldMove", voMapItem.position.x, voMapItem.position.y); } if (null == voMapItem.WorldUnit) { //移动到该位置 TweenImage(onImage, WorldMove); return; } var unitType = voMapItem.WorldUnit.unitType; switch (unitType) { case MapType.None: //移动到该位置 TweenImage(onImage, WorldMove); break; case MapType.Player: var player = voMapItem.WorldUnit.player; if (null == player) { return; } Util.CallMethod(name, "CheckPlayer", voMapItem.position.x, voMapItem.position.y, player.id); break; case MapType.Resource: //攻击某点 Util.CallMethod(name, "CheckRes", voMapItem.position.x, voMapItem.position.y, voMapItem.WorldUnit.res.id); break; } }
/// <summary> /// 添加监听 /// </summary> /// <param name="gameObj"></param> /// <param name="voMapItem"></param> private void AddListener(OnImage onImage, VoMapItem voMapItem) { //添加监听 onImage.onDistance.RemoveAllListeners(); onImage.onDistance.AddListener(delegate { OnItemClick(onImage, voMapItem); }); }