Exemple #1
0
 public void SetDrop()
 {
     goldStatus = GoldStatusEnum.Drop;
     SetPhysic(true);
     if (handler_Gold)
     {
         transform.SetParent(handler_Gold.transform);
     }
 }
Exemple #2
0
    public void SetCarry(CharacterTypeEnum characterType, Transform tfHand)
    {
        SetPhysic(false);
        goldStatus         = GoldStatusEnum.Carry;
        this.characterType = characterType;
        transform.SetParent(tfHand);
        transform.DOLocalMove(Vector3.zero, 0.5f);
        transform.DOLocalRotate(Vector3.zero, 0.5f);
        //transform.localPosition = Vector3.zero;

        //通知所有搬运者 已经有人搬运
        NotifyAllObserver((int)NotifyTypeEnum.HasCarry);
        //然后删除所有想要的搬运者
        RemoveAllObserver();
    }
Exemple #3
0
 public void SetRecycle(long addGold, Vector3 recyclePosition)
 {
     goldStatus = GoldStatusEnum.Recycle;
     handler_Gold.RecycleGold(this);
     //SetPhysic(true);
     transform.SetParent(handler_Gold.transform);
     //弹出信息框
     if (addGold > 0)
     {
         Vector2        uiPosition = GameUtil.WorldPointToUILocalPoint(null, manager_Msg.GetContainer(), transform.position + new Vector3(1, 0, 0));
         MsgForGoldView msgView    = manager_Msg.ShowMsg <MsgForGoldView>(MsgEnum.Gold, "", uiPosition);
         msgView.SetGold(addGold);
     }
     //抛物线动画
     AnimForRecycle(recyclePosition);
 }
    /// <summary>
    /// 获取闲置的金币
    /// </summary>
    /// <returns></returns>
    public GoldCpt GetGoldByStatus(GoldStatusEnum goldStatus)
    {
        if (CheckUtil.ListIsNull(listGold))
        {
            return(null);
        }
        List <GoldCpt> listTemp = new List <GoldCpt>();

        for (int i = 0; i < listGold.Count; i++)
        {
            GoldCpt itemGold = listGold[i];
            if (itemGold.GetGoldStatus() == goldStatus)
            {
                listTemp.Add(itemGold);
            }
        }
        return(RandomUtil.GetRandomDataByList(listTemp));
    }
    public GoldCpt GetCloseGoldByStatus(Vector3 position, GoldStatusEnum goldStatus)
    {
        if (CheckUtil.ListIsNull(listGold))
        {
            return(null);
        }
        float   minDistance = float.MaxValue;
        GoldCpt minGold     = null;

        for (int i = 0; i < listGold.Count; i++)
        {
            GoldCpt itemGold = listGold[i];
            if (itemGold.GetGoldStatus() == goldStatus)
            {
                float tempDistance = Vector3.Distance(position, itemGold.transform.position);
                if (tempDistance < minDistance)
                {
                    minDistance = tempDistance;
                    minGold     = itemGold;
                }
            }
        }
        return(minGold);
    }
Exemple #6
0
 public void ChangeGoldStatus(GoldStatusEnum goldStatus)
 {
     this.goldStatus = goldStatus;
 }