static void OnLoadHeadInfo(GameObject resObj, object parent, object fun) { if (null != resObj) { if (null != GameManager.gameManager.ActiveScene.NameBoardRoot) { resObj.transform.parent = GameManager.gameManager.ActiveScene.NameBoardRoot.transform; } resObj.transform.localPosition = Vector3.zero; resObj.transform.localRotation = Quaternion.LookRotation(Vector3.forward); BillBoard billboard = resObj.GetComponent <BillBoard>(); if (null == billboard) { billboard = resObj.AddComponent <BillBoard>(); if (null != billboard) { billboard.BindObj = parent as GameObject; } } else { billboard.BindObj = parent as GameObject; billboard.enabled = true; } //由于会复用,所以需要重新设置名字版的高度修正 if (null != billboard && null != billboard.BindObj) { Obj_OtherPlayer objOtherPlayer = billboard.BindObj.GetComponent <Obj_OtherPlayer>(); if (null != objOtherPlayer) { billboard.fDeltaHeight = objOtherPlayer.DeltaHeight + objOtherPlayer.GetMountNameBoardHeight(); } else { Obj_Character objCharacter = billboard.BindObj.GetComponent <Obj_Character>(); if (null != objCharacter) { billboard.fDeltaHeight = objCharacter.DeltaHeight; } } } LoadHeadInfoDelegate delFun = fun as LoadHeadInfoDelegate; if (null != delFun) { delFun(resObj); } } else { LogModule.ErrorLog("load headinfo fail"); } }
/// <summary> /// 加载头顶信息Prefab /// </summary> /// <param name="nParent">父节点</param> /// <param name="strPrefabName">Prefab名字</param> /// <returns></returns> public static void LoadHeadInfoPrefab(UIPathData uiData, GameObject nParent, string strPrefabName, LoadHeadInfoDelegate delFun) { if (null == GameManager.gameManager.ActiveScene || null == GameManager.gameManager.ActiveScene.NameBoardPool) { LogModule.ErrorLog("scene is not init when load headinfo"); return; } GameManager.gameManager.ActiveScene.NameBoardPool.CreateUIFromBundle(uiData, strPrefabName, OnLoadHeadInfo, nParent, delFun); }