Unity学习--NGUI实现双击出牌

记录在自学unity的过程中实现的小功能。
大体功能是第一次点击高亮标记卡牌,第二次点击出牌,右键取消选择。

单击方法用的是NGUI自带的单击。
实现方法就是把这三个脚本挂上就行了。
在这里插入图片描述

private bool firstClicked = false;
 private bool secondClicked = false;
 private string CardName;
 public CardEffect cardEffect;
 public Card card;
 public Transform CManager;
 public Vector3 CardPosition;
 public GameObject CardGO;
 public void OnDoubleClicked() //双击出牌
    {
        if (firstClicked == false)
        {
            firstClicked = true;
            //第一次点击高亮
					//实现高亮的代码

            Debug.Log("firstclicked");
        }
        else if(secondClicked == false) //双击后的功能实现
        {
            if (GameObject.Find("Manager").GetComponent<FightManager>().Turn == FightManager.TurnState.PlayerTurn)//如果是你的回合
            {
                //出牌
                //Debug.Log("chupai");
                SetCard(); //获取点击的牌
                //Debug.Log(CardName);
                //Debug.Log(card);
                if (GameObject.Find("Manager").GetComponent<PlayerManager>().NowCost >= card.Cost)//费用计算
                {
                    SendMessage(CardName, this.gameObject, SendMessageOptions.RequireReceiver);//运行对应方法
                    firstClicked = false;
                    Destroy(this.gameObject);//删除卡牌
                    GameObject.Find("Manager").GetComponent<PlayerManager>().NowCost = GameObject.Find("Manager").GetComponent<PlayerManager>().NowCost - card.Cost; //计算出牌后剩余费用
                }
                else
                {
                    Debug.Log("行动点不够!");
                    firstClicked = false;
                }
            }
            else
                Debug.Log("不是你的回合!");
        }
        else
        {
            Debug.Log(firstClicked);
            Debug.Log(secondClicked);
        }
    }
    public void OnRightClicked() //右键点击取消选中
    {
        if(Input.GetMouseButtonDown(1))
            firstClicked = false;
           //取消高亮代码
    }
    public void SetCard() //获取点击的卡牌信息
    {
        CardName = this.transform.Find("cardname/name").GetComponent<UILabel>().text;
        card = this.transform.GetComponent<CardInstance>().card;
        CardPosition = this.transform.position;
        CardGO = this.gameObject;
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值