public void CreateEquipmentCallBack(PreviewEquipment _eq) { //防止有之前延迟的模型加载,再次清理 ClearModel(); curPreviewEqObj = _eq; GameObject parent = GetModelTransform(_eq.PreviewPosition, _eq.PreviewRotation); if (null != parent) { _eq.transform.parent = parent.transform; _eq.transform.localPosition = new Vector3(0, -_eq.Height / 2f, 0); _eq.transform.localEulerAngles = new Vector3(0, 180f, 0); } _eq.FaceToNoLerp(180f); UIDragObjectRotate3D _UIDragObjectRotate3D = curShowLabel.gameObject.GetComponent <UIDragObjectRotate3D>(); if (_UIDragObjectRotate3D == null) { _UIDragObjectRotate3D = curShowLabel.gameObject.AddComponent <UIDragObjectRotate3D>(); } _UIDragObjectRotate3D.target = _eq; BoxCollider bc = curShowLabel.gameObject.GetComponent <BoxCollider>(); if (bc == null) { curShowLabel.gameObject.AddComponent <BoxCollider>(); } BindRenderAndUI(curShowLabel); }
/// <summary> /// 非经过我同意禁用本接口 by吴江 /// </summary> /// <param name="_info"></param> /// <param name="_callBack"></param> /// <returns></returns> public bool TryPreviewSingleEquipment(EquipmentInfo _eq, System.Action <PreviewEquipment> _callBack) { if (_eq == null) { return(false); } PreviewEquipment pe = PreviewEquipment.CreateDummy(_eq); pe.mutualExclusion = false; pe.StartAsyncCreate(_callBack); return(true); }
IEnumerator CreateAsync(System.Action <PreviewEquipment> _callback) { if (isDummy_ == false) { GameSys.LogError("You can only start create Equipment in dummy: " + actorInfo.InstanceID); yield break; } // PreviewEquipment item = null; MountRendererCtrl myRendererCtrl = null; bool failed = false; pendingDownload = Create(actorInfo, delegate(PreviewEquipment _eq, EResult _result) { if (_result != EResult.Success) { failed = true; return; } item = _eq; pendingDownload = null; myRendererCtrl = item.gameObject.GetComponentInChildrenFast <MountRendererCtrl>(); if (myRendererCtrl != null) { myRendererCtrl.Show(true, true); } }); if (mutualExclusion) { GameCenter.previewManager.PushDownLoadTask(pendingDownload); } while (item == null || item.inited == false) { if (failed) { yield break; } yield return(null); } if (mutualExclusion) { GameCenter.previewManager.EndDownLoadTask(pendingDownload); } pendingDownload = null; item.isDownloading_ = false; if (_callback != null) { _callback(item); } }
/// <summary> /// 创建净数据对象 by吴江 /// </summary> /// <param name="_info"></param> /// <returns></returns> public static PreviewEquipment CreateDummy(EquipmentInfo _info) { if (_info == null) { return(null); } GameObject newGO = new GameObject("Dummy Equipment[" + _info.InstanceID + "]"); newGO.tag = "Player"; PreviewEquipment item = newGO.AddComponent <PreviewEquipment>(); item.isDummy_ = true; item.actorInfo = _info; return(item); }
/// <summary> /// 预览单件装备 /// </summary> /// <param name="_eq"></param> /// <param name="_showLabel"></param> /// <returns></returns> public bool TryPreviewSingleEquipment(EquipmentInfo _eq, UITexture _showLabel) { if (_eq == null) { return(false); } curShowLabel = _showLabel; if (curPreviewEqInfo != null && curPreviewEqInfo.EID == _eq.EID && curPreviewEqObj != null) { curPreviewEqInfo = _eq; BindRenderAndUI(curShowLabel); return(true); } else { ClearModel(); curPreviewEqInfo = _eq; CancelAllDownLoad(); PreviewEquipment pe = PreviewEquipment.CreateDummy(_eq); pe.StartAsyncCreate(CreateEquipmentCallBack); return(true); } }