|
@@ -1004,12 +1004,22 @@ namespace GFGGame
|
|
);
|
|
);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private RenderTexture renderTexure;
|
|
private void CreateHeadImg()
|
|
private void CreateHeadImg()
|
|
{
|
|
{
|
|
|
|
+ // 创建render texture
|
|
|
|
+ renderTexure = new RenderTexture(550, 760, 24);
|
|
|
|
+
|
|
// 换装父节点 + 相机
|
|
// 换装父节点 + 相机
|
|
_dressUpSceneObj = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("StoryDialogSelfImg/StoryDialogDressUpObj"));
|
|
_dressUpSceneObj = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("StoryDialogSelfImg/StoryDialogDressUpObj"));
|
|
|
|
+ Camera camera = _dressUpSceneObj.transform.Find("Camera").GetComponent<Camera>();
|
|
|
|
+ camera.targetTexture = renderTexure;
|
|
|
|
+
|
|
// 创建RawImg
|
|
// 创建RawImg
|
|
_selfHeadImgObj = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("StoryDialogSelfImg/Canvas"));
|
|
_selfHeadImgObj = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("StoryDialogSelfImg/Canvas"));
|
|
|
|
+ RawImage rawImage = _selfHeadImgObj.transform.Find("mask/RawImage").GetComponent<RawImage>();
|
|
|
|
+ rawImage.texture = renderTexure;
|
|
|
|
+
|
|
// 将RawImg放在FGUI上
|
|
// 将RawImg放在FGUI上
|
|
GoWrapper goWrapper = new GoWrapper(_selfHeadImgObj);
|
|
GoWrapper goWrapper = new GoWrapper(_selfHeadImgObj);
|
|
_ui.m_dialogHead.m_compDressUp.m_holder.SetNativeObject(goWrapper);
|
|
_ui.m_dialogHead.m_compDressUp.m_holder.SetNativeObject(goWrapper);
|
|
@@ -1022,10 +1032,17 @@ namespace GFGGame
|
|
|
|
|
|
private void DestroyHeadImg()
|
|
private void DestroyHeadImg()
|
|
{
|
|
{
|
|
|
|
+ // 清空render Texture
|
|
Camera camera = _dressUpSceneObj.transform.Find("Camera").GetComponent<Camera>();
|
|
Camera camera = _dressUpSceneObj.transform.Find("Camera").GetComponent<Camera>();
|
|
camera.targetTexture = null;
|
|
camera.targetTexture = null;
|
|
- Transform parent = _dressUpSceneObj.transform.Find("Role");
|
|
|
|
- ChangeLayer(parent, 0);
|
|
|
|
|
|
+ RawImage rawImage = _selfHeadImgObj.transform.Find("mask/RawImage").GetComponent<RawImage>();
|
|
|
|
+ rawImage.texture = null;
|
|
|
|
+ renderTexure.Release();
|
|
|
|
+ renderTexure = null;
|
|
|
|
+
|
|
|
|
+ // 回收人物
|
|
|
|
+ _dressUpObj?.Dispose();
|
|
|
|
+ _dressUpObj = null;
|
|
|
|
|
|
// 回收RawImage
|
|
// 回收RawImage
|
|
if (_selfHeadImgObj != null)
|
|
if (_selfHeadImgObj != null)
|
|
@@ -1040,10 +1057,6 @@ namespace GFGGame
|
|
PrefabManager.Instance.Restore(_dressUpSceneObj);
|
|
PrefabManager.Instance.Restore(_dressUpSceneObj);
|
|
_dressUpSceneObj = null;
|
|
_dressUpSceneObj = null;
|
|
}
|
|
}
|
|
-
|
|
|
|
- // 回收人物
|
|
|
|
- _dressUpObj?.Dispose();
|
|
|
|
- _dressUpObj = null;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|