static int GetDummyFromCache(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         WCG.RenderObj         obj  = (WCG.RenderObj)ToLua.CheckObject <WCG.RenderObj>(L, 1);
         string                arg0 = ToLua.CheckString(L, 2);
         UnityEngine.Transform o    = obj.GetDummyFromCache(arg0);
         ToLua.Push(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
예제 #2
0
 public void SetGraphicChar(RenderObj oGraphicChar)
 {
     if (oGraphicChar != null)
     {
         enabled   = true;
         m_trDummy = oGraphicChar.GetDummyFromCache("Dummy_top2");
         if (m_trDummy == null)
         {
             m_trDummy = oGraphicChar.transform;
         }
         UpdateUIPos();
     }
     else
     {
         enabled   = false;
         m_trDummy = null;
     }
 }
예제 #3
0
        public GameObject BindLineEffect(string sEffect, GameObject oTarget, string sSelfDummy, string sTarDummy, float nEffTime)
        {
            RenderObj oTarRenObj = oTarget.GetComponent <RenderObj>();

            if (!oTarRenObj)
            {
                DebugMsg("Target is NOT a Character:" + oTarget.name);
                return(null);
            }

            Transform oTarDummy = oTarRenObj.GetDummyFromCache(sTarDummy);

            if (!oTarDummy)
            {
                DebugMsg("BindLineEffect wrong sDummyTarget:" + m_sName + "," + sTarDummy);
                return(null);
            }

            Transform oSelfDummy = GetDummyFromCache(sSelfDummy);

            if (!oSelfDummy)
            {
                DebugMsg("BindLineEffect wrong sDummySelf:" + m_sName + "," + sSelfDummy);
                return(null);
            }

            GameObject oLineObj = ResourceMgr.LoadAssetEx(sEffect, true);

            if (!oLineObj)
            {
                DebugMsg("BindLineEffect wrong sEffect:" + sEffect);
                return(null);
            }

            oLineObj.SetActive(false);
            Transform trTempDy = transform.Find("Temp_Dummy");

            if (!trTempDy)
            {
                GameObject goTempDy = new GameObject("Temp_Dummy");
                trTempDy = goTempDy.transform;
                trTempDy.SetParent(transform);
            }
            trTempDy.transform.position = oSelfDummy.position;

            Transform oLineTrans = oLineObj.transform;

            oLineTrans.position = oTarDummy.position;
            float   fOffsetY = transform.InverseTransformPoint(oSelfDummy.position).y;
            Vector3 v3Offset = fOffsetY * transform.up.normalized;

            UIMgr.Instance.SetAllLineRenderer(oLineObj, 1 / 10);
            oLineTrans.LookAt(trTempDy.transform.position);
            oLineTrans.SetParent(trTempDy.transform);
            oLineObj.SetActive(true);

            EffectObj oEffObj = new EffectObj(oLineTrans, transform, trTempDy, oTarDummy, v3Offset, nEffTime / 1000);

            m_tEffectObj.Add(oLineObj.GetInstanceID(), oEffObj);
            return(oLineObj);
        }