Skip to content

Commit 91ee96d

Browse files
Jesse Olmergustavopsantos
andauthored
perf: Improve testproject DrawRay.cs performance (#2166)
Achieves a more GC friendly DrawRay debug code through caching the gameobject transform, reducing the engine calls to getTransform Co-authored-by: Gustavo Santos <gustappsantos@gmail.com>
1 parent 6a46c38 commit 91ee96d

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

testproject/Assets/Scripts/DrawRay.cs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,26 @@
33
[RequireComponent(typeof(LineRenderer))]
44
public class DrawRay : MonoBehaviour
55
{
6+
private const float k_RayLength = 10;
7+
8+
private Transform m_Transform;
69
private LineRenderer m_LineRenderer;
710

811
private void Awake()
912
{
10-
m_LineRenderer = GetComponent<LineRenderer>();
13+
TryGetComponent(out m_Transform);
14+
TryGetComponent(out m_LineRenderer);
1115
m_LineRenderer.SetPosition(0, transform.position);
1216
}
1317

1418
private void FixedUpdate()
1519
{
16-
if (Physics.Raycast(new Ray(transform.position, transform.forward * 10), out RaycastHit hit, 10, Physics.DefaultRaycastLayers))
17-
{
18-
m_LineRenderer.SetPosition(1, hit.point);
19-
}
20-
else
21-
{
22-
m_LineRenderer.SetPosition(1, transform.position + transform.forward * 10);
23-
}
20+
var ray = new Ray(m_Transform.position, m_Transform.forward * k_RayLength);
21+
22+
var point = Physics.Raycast(ray, out var hit, k_RayLength, Physics.DefaultRaycastLayers)
23+
? hit.point
24+
: m_Transform.position + m_Transform.forward * k_RayLength;
25+
26+
m_LineRenderer.SetPosition(1, point);
2427
}
2528
}

0 commit comments

Comments
 (0)