1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- 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)
- {
- dressUpObj.TakeOffAll();
- if (sceneObject == null)
- 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)
- {
- if (wrapper.wrapTarget != null)
- {
- wrapper.wrapTarget = null;
- }
- wrapper.Dispose();
- wrapper = null;
- }
- }
- private void OnUpdate(object o)
- {
- if(sceneObject == null)
- {
- Timers.inst.Remove(OnUpdate);
- return;
- }
- if(wrapper != null)
- {
- wrapper.wrapTarget = sceneObject;
- }
- //wrapper.CacheRenderers();
- }
- }
- }
|