我一直在努力解决这个问题,我无法找出问题所在。
这是一张图片:
这里是一个指向unitypackage的链接:https://www.dropbox.com/s/0vm67njz5unn8w2/RaycastNonalloc.rar?dl=0
我已经在两台不同的计算机上测试了这个项目,并且在第一台RaycastNonAlloc上都分配了40B的内存。我测试过的第二台计算机从未安装过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);
}
}
}
感谢您的阅读。
答案 0 :(得分:1)
Unity回答我的回答是这是一个错误。谢谢你的帮助。