12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using FairyGUI;
- using UnityEngine;
- namespace GFGGame
- {
- public class DressUpObjUI
- {
- public GameObject sceneObject;
- public GoWrapper wrapper;
- public DressUpObj dressUpObj;
- string prefabName;
- public DressUpObjUI(string prefabName = "SceneDressUp")
- {
- this.prefabName = prefabName;
- dressUpObj = new DressUpObj();
- wrapper = new GoWrapper();
- }
- public void ResetSceneObj(int scale = 100, bool needSetMask = false, bool showSceneType = true, GameObject roleObj = null, bool showBg = true)
- {
- sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath(this.prefabName));
- sceneObject.transform.localScale = new Vector3(scale, scale, scale);
- dressUpObj.setSceneObj(sceneObject, needSetMask, showSceneType, roleObj, showBg);
- Timers.inst.AddUpdate(OnUpdate);
- }
- public void UpdateWrapper(GGraph holder)
- {
- holder.SetNativeObject(wrapper);
- wrapper.wrapTarget = sceneObject;
- }
- public void Dispose()
- {
- if (sceneObject != null)
- {
- PrefabManager.Instance.Restore(sceneObject);
- sceneObject = null;
- }
- if (dressUpObj != null)
- {
- dressUpObj.Dispose();
- dressUpObj = null;
- }
- if (wrapper != null)
- {
- wrapper.Dispose();
- wrapper = null;
- }
- }
- private void OnUpdate(object o)
- {
- if(sceneObject == null)
- {
- Timers.inst.Remove(OnUpdate);
- return;
- }
- wrapper.wrapTarget = sceneObject;
- }
- }
- }
|