「Unity/UIImage/Texture」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==Textureコピー== <pre> var tmpTexture = Copy((Texture2D)texture); tmpTexture.Apply(); </pre> コピーロジック <pre> public Texture2D Copy(Texture2D source) {...」) |
(→Texture削除) |
||
(同じ利用者による、間の4版が非表示) | |||
行1: | 行1: | ||
− | == | + | ==Textureの値渡し== |
<pre> | <pre> | ||
− | var tmpTexture = | + | var tmpTexture = CopyTexture((Texture2D)texture); |
tmpTexture.Apply(); | tmpTexture.Apply(); | ||
</pre> | </pre> | ||
コピーロジック | コピーロジック | ||
<pre> | <pre> | ||
− | public Texture2D | + | public Texture2D CopyTexture(Texture2D source) |
{ | { | ||
var texture = new Texture2D(source.width, source.height, TextureFormat.RGBA32, false); | var texture = new Texture2D(source.width, source.height, TextureFormat.RGBA32, false); | ||
行19: | 行19: | ||
</pre> | </pre> | ||
参考:https://qiita.com/UnityFoo/items/25b8304036e0a8ca7798 | 参考:https://qiita.com/UnityFoo/items/25b8304036e0a8ca7798 | ||
+ | |||
+ | ==Texture削除== | ||
+ | <pre> | ||
+ | Destroy(texture); | ||
+ | tmpTexture = null; | ||
+ | </pre> | ||
+ | 解放(Destroy)して削除しないと、メモリ内に、データが溜まっていきます。 | ||
+ | |||
+ | ==Texture高速化== | ||
+ | 参考:https://baba-s.hatenablog.com/entry/2022/08/29/103639 |
2023年7月2日 (日) 22:31時点における最新版
Textureの値渡し
var tmpTexture = CopyTexture((Texture2D)texture); tmpTexture.Apply();
コピーロジック
public Texture2D CopyTexture(Texture2D source) { var texture = new Texture2D(source.width, source.height, TextureFormat.RGBA32, false); var renderTexture = new RenderTexture(texture.width, texture.height, 32); Graphics.Blit(source, renderTexture); RenderTexture.active = renderTexture; texture.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0); RenderTexture.active = null; RenderTexture.DestroyImmediate(renderTexture); return texture; }
参考:https://qiita.com/UnityFoo/items/25b8304036e0a8ca7798
Texture削除
Destroy(texture); tmpTexture = null;
解放(Destroy)して削除しないと、メモリ内に、データが溜まっていきます。