Exemple #1
0
        /// <summary>
        /// BUFF开始起效果;
        /// </summary>
        public void StartPlay()
        {
            this.CurState  = PlayConst.BUFF_STATE.RUNNING;
            _startPlayTime = ServerTime.Instance.Timestamp;
            //播放特效;
            GameObject findHostObject = PlayUtils.GetPartBonesByHostAndTag(this.HostId, this.PosTag);

            if (findHostObject == null)
            {
                findHostObject = AppMap.Instance.GetPlayer(this.HostId.ToString()).Controller.gameObject;
            }
            if (findHostObject == null)
            {
                return;
            }
            //创建特效播放;
            Effect effectVo = new Effect();

            effectVo.URL          = UrlUtils.GetBuffEffectUrl(this.BuffVo.effect.ToString());
            effectVo.Direction    = HostDisplay.CurFaceDire;
            effectVo.BasePosition = findHostObject.transform.position;
            effectVo.Offset       = Vector3.zero;
            effectVo.NeedCache    = true;
            effectVo.Target       = findHostObject.gameObject;
            EffectMgr.Instance.CreateBuffEffect(effectVo);
        }
Exemple #2
0
 /// <summary>
 /// 添加抓取投掷;
 /// </summary>
 /// <param name="grapDisplay">被抓取者</param>
 /// <param name="hostController">抓取者</param>
 /// <param name="setTag">PlayConstant中的部位字符串</param>
 /// <param name="autoIfNoTag">如果setTag的部位为null,那么使用display的位置</param>
 public void AddGrapDispaly(BaseDisplay grapDisplay, BaseControler hostController, string setTag, bool autoIfNoTag = true, bool autoThrow = true, Action throwComplete = null)
 {
     if (grapDisplay != null)
     {
         GameObject partGo = PlayUtils.GetPartBonesByHostAndTag(hostController.Me.GetVo().Id.ToString(), setTag);
         Vector3    tmpPos;
         //判断部件位置;
         if (partGo != null)
         {
             tmpPos = partGo.transform.position;
         }
         else
         {
             tmpPos = hostController.Me.Controller.transform.position;
         }
         PlayUtils.MakeAFaceToB(hostController.Me, grapDisplay);
         grapDisplay.Pos(tmpPos);
         if (autoThrow)
         {
             StartCoroutine(ThrowDisplay(grapDisplay, hostController, Directions.GetOpposite(hostController.Me.CurFaceDire), throwComplete));
         }
     }
 }
Exemple #3
0
        /// <summary>
        /// 通过tag获取对应部件;
        /// </summary>
        /// <param name="_boneTag"></param>
        /// <returns></returns>
        public GameObject GetPartBonesByTag(string _boneTag)
        {
            GameObject rtnGo = PlayUtils.GetPartBonesByHostAndTag(this.GetVo().Id.ToString(), _boneTag);

            return(rtnGo);
        }