Я пытался решить это в течение нескольких дней, и я не могу понять, что случилось.RaycastNonAlloc выделяет 40B памяти в Unity
Вот картинка:
и вот ссылка на unitypackage: https://www.dropbox.com/s/0vm67njz5unn8w2/RaycastNonalloc.rar?dl=0
Я проверил проект на двух разных компьютерах и на них обоих 40B памяти выделяется на первом RaycastNonAlloc , На втором компьютере, на котором я тестировал это, никогда не было установлен Unity, и я просто импортировал пакет и запускал программу, не касаясь каких-либо настроек. Люди, которые в Интернете, которые пробовали это, не получают выделенной памяти при ее запуске. Если бы кто-то помог мне решить эту проблему, я был бы так счастлив, что не буду делать то, что я буду делать.
using System.Collections;
using UnityEngine;
public class Test : MonoBehaviour
{
private Ray ray;
public Transform targetTransform, targetTransform2,
myTransform;
public int numberOfRaycastHits;
private RaycastHit[] raycastHits;
private bool useOther;
private float tempFloat;
void Start()
{
raycastHits = new RaycastHit[10];
myTransform = transform;
}
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
useOther = !useOther;
/*Material mat = new Material(Shader.Find("Diffuse"));
Destroy(mat);*/
//Debug.Log(numberOfRaycastHits);
PerformRaycast();
}
}
private void PerformRaycast()
{
if (useOther)
{
ray.origin = myTransform.position;
ray.direction = targetTransform2.position - myTransform.position;
numberOfRaycastHits = Physics.RaycastNonAlloc(ray, raycastHits, 10);
}
else
{
ray.origin = myTransform.position;
ray.direction = targetTransform.position - myTransform.position;
numberOfRaycastHits = Physics.RaycastNonAlloc(ray, raycastHits, 10);
}
}
}
Благодарим за понимание.
Профилирование в редакторе или на устройстве? (иногда есть разница) Можете ли вы опубликовать сценарий raycast, так что можете посмотреть без импорта пакета. – mgear
Я получаю выделенную память как в редакторе, так и в автономной сборке. – tomtensfarfar