前提・実現したいこと
Unityのvoid Update()内でnew演算子を用いた場合、メモリリークが発生するのか気になります。
後記にて某サイトから参考にしているソースコードを転載しますので、メモリリークが発生するのかどうかご教示ください。
該当のソースコード
使用言語:C#
using UnityEngine; using System.Collections; using UnityEngine.UI; public class FadeScript : MonoBehaviour { float alfa; float speed = 0.01f; float red, green, blue; void Start () { red = GetComponent<Image>().color.r; green = GetComponent<Image>().color.g; blue = GetComponent<Image>().color.b; } void Update () { GetComponent<Image>().color = new Color(red, green, blue, alfa); alfa += speed; } }
試したこと
少し調べてみましたが、
ループが1回終わるごとにループ内のローカル変数はガベージコレクタで破棄する対象となるという情報があり、
じゃあUpdateが1回終わるごとに破棄されるから問題無いな!とも思ったのですが
newってその都度メモリを使うイメージ(認識)だったのでループする度に明示的に消さないとメモリリークが発生するのでは・・・?
それに、取得したものはちゃんと開放しとけよ~と教わった気もするけどアノ記憶はOpen Closeだったっけか・・・と
曖昧な記憶があり本当にそうなの?と思った次第です。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/19 01:39
2019/11/19 02:39