mirror of
https://github.com/Cardidi/dotween-upm-fork.git
synced 2025-12-20 17:26:03 +08:00
61 lines
1.4 KiB
C#
61 lines
1.4 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using DG.Tweening;
|
|
|
|
public class IndexOutOfRangeHell : BrainBase
|
|
{
|
|
public GameObject prefab;
|
|
public Transform container;
|
|
|
|
List<Transform> ts;
|
|
|
|
IEnumerator Start()
|
|
{
|
|
ts = new List<Transform>();
|
|
while (true) {
|
|
if (ts.Count < 1000) {
|
|
Debug.Log(Time.frameCount + " Creating tweens");
|
|
SpawnObjectsAndTweens(1000);
|
|
}
|
|
if (Time.frameCount % 100 == 0) {
|
|
Debug.Log("<color=#00FF00>Clearing DOTween</color>");
|
|
foreach (Transform t in ts) Destroy(t.gameObject);
|
|
ts.Clear();
|
|
DOTween.Clear(true);
|
|
}
|
|
yield return null;
|
|
}
|
|
}
|
|
|
|
void SpawnObjectsAndTweens(int tot)
|
|
{
|
|
for (int i = 0; i < tot; ++i) {
|
|
GameObject go = Instantiate(prefab) as GameObject;
|
|
go.transform.position = RandomV3();
|
|
go.transform.parent = container;
|
|
go.GetComponent<Renderer>().enabled = false;
|
|
Transform t = go.transform;
|
|
ts.Add(t);
|
|
if (i % 2 == 0) {
|
|
// Tweener
|
|
t.DOMove(RandomV3(), Random.Range(0.1f, 1f)).OnComplete(()=> {
|
|
ts.Remove(t);
|
|
Destroy(t.gameObject);
|
|
});
|
|
} else {
|
|
// Sequence
|
|
DOTween.Sequence().Append(t.DOMove(RandomV3(), Random.Range(0.1f, 1f))).OnComplete(()=> {
|
|
ts.Remove(t);
|
|
Destroy(t.gameObject);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
Vector3 RandomV3()
|
|
{
|
|
const float range = 7;
|
|
return new Vector3(Random.Range(-range,range), Random.Range(-range,range), Random.Range(-range,range));
|
|
}
|
|
} |