csharp 大量のオブジェクトを何度も吐温させる场合はSetRecyclable(真)にした方がよいかもと検证したサンプルコード
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 大量のオブジェクトを何度も吐温させる场合はSetRecyclable(真)にした方がよいかもと検证したサンプルコード相关的知识,希望对你有一定的参考价值。
using UnityEngine;
using System.Collections;
using UnityEditor;
[CustomEditor(typeof(PooledDOTween))]
public class PooledDOTweenEditor : Editor
{
private PooledDOTween _target;
private void OnEnable ()
{
_target = (PooledDOTween)target;
}
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
if (GUILayout.Button("CreateCapsules"))
{
_target.CreateCapsules();
}
if (GUILayout.Button("StartTween"))
{
_target.StartTween();
}
}
}
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using DG.Tweening;
public class PooledDOTween : MonoBehaviour
{
private List<GameObject> objs = new List<GameObject>();
/// <summary>
/// TweenerのPoolフラグ
/// </summary>
public bool isPool = false;
private bool _isPlayed;
/// <summary>
/// カプセルをたくさん生成
/// </summary>
public void CreateCapsules()
{
for (int i = 0; i < 10000; i++)
{
var obj = GameObject.CreatePrimitive(PrimitiveType.Capsule);
// 不要なコンポーネントは削除
var collider = obj.GetComponent<Collider>();
Destroy(collider);
objs.Add(obj);
}
}
/// <summary>
/// Tween開始
/// </summary>
public void StartTween()
{
if (_isPlayed)
{
return;
}
_isPlayed = true;
StartCoroutine(_StartTween());
}
private IEnumerator _StartTween()
{
while (true)
{
foreach (var obj in objs)
{
var goal = new Vector3(Random.Range(-10f, 10f), Random.Range(-10f, 10f), Random.Range(10f, 50f));
if (isPool)
{
// DOTweenのPoolを有効化する
obj.transform.DOLocalMove(goal, 1f).SetRecyclable();
}
else
{
obj.transform.DOLocalMove(goal, 1f);
}
}
yield return new WaitForSeconds(2f);
}
}
}
以上是关于csharp 大量のオブジェクトを何度も吐温させる场合はSetRecyclable(真)にした方がよいかもと検证したサンプルコード的主要内容,如果未能解决你的问题,请参考以下文章
csharp DIできる状态で,动的にオブジェクトを生成する(普通にGameObject.Instantiateすると,生成されたオブジェクトにはDIされない))
csharp DIが机能するように,オブジェクトを动的生成する
markdown SharedPreferenceに単纯なオブジェクト,泛型を使ったオブジェクトを保存
javascript オブジェクトをコピーする
markdown 争论オブジェクトを配列に変换
markdown 地图オブジェクトを使ったもぐらたたき