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)); } }
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; } }
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); }