move frand

This commit is contained in:
ikpil 2023-04-27 22:36:05 +09:00
parent 4cb6c1cac7
commit 89eb8554d9
5 changed files with 31 additions and 27 deletions

View File

@ -0,0 +1,24 @@
using System;
namespace DotRecast.Core
{
public class FRand
{
private readonly Random r;
public FRand()
{
r = new Random();
}
public FRand(long seed)
{
r = new Random((int)seed); // TODO : 랜덤 시드 확인 필요
}
public float frand()
{
return (float)r.NextDouble();
}
}
}

View File

@ -73,26 +73,6 @@ namespace DotRecast.Detour
m_openList = new NodeQueue();
}
public class FRand
{
private readonly Random r;
public FRand()
{
r = new Random();
}
public FRand(long seed)
{
r = new Random((int)seed); // TODO : 랜덤 시드 확인 필요
}
public float frand()
{
return (float)r.NextDouble();
}
}
/**
* Returns random location on navmesh. Polygons are chosen weighted by area. The search runs in linear related to
* number of polygon.

View File

@ -48,7 +48,7 @@ public class CrowdProfilingTool
private Crowd crowd;
private NavMesh navMesh;
private CrowdConfig config;
private NavMeshQuery.FRand rnd;
private FRand rnd;
private readonly List<FindRandomPointResult> zones = new();
private long crowdUpdateTime;
@ -79,7 +79,7 @@ public class CrowdProfilingTool
{
if (navMesh != null)
{
rnd = new NavMeshQuery.FRand(randomSeed);
rnd = new FRand(randomSeed);
createCrowd();
createZones();
NavMeshQuery navquery = new NavMeshQuery(navMesh);

View File

@ -495,7 +495,7 @@ public class TestNavmeshTool : Tool
for (int i = 0; i < 200; i++)
{
Result<FindRandomPointResult> result = m_navQuery.findRandomPointAroundCircle(m_startRef, m_spos, dist,
m_filter, new NavMeshQuery.FRand(), constraint);
m_filter, new FRand(), constraint);
if (result.succeeded())
{
randomPoints.Add(result.result.getRandomPt());

View File

@ -31,7 +31,7 @@ public class RandomPointTest : AbstractDetourTest
[Test]
public void testRandom()
{
NavMeshQuery.FRand f = new NavMeshQuery.FRand(1);
FRand f = new FRand(1);
QueryFilter filter = new DefaultQueryFilter();
for (int i = 0; i < 1000; i++)
{
@ -59,7 +59,7 @@ public class RandomPointTest : AbstractDetourTest
[Test]
public void testRandomAroundCircle()
{
NavMeshQuery.FRand f = new NavMeshQuery.FRand(1);
FRand f = new FRand(1);
QueryFilter filter = new DefaultQueryFilter();
FindRandomPointResult point = query.findRandomPoint(filter, f).result;
for (int i = 0; i < 1000; i++)
@ -90,7 +90,7 @@ public class RandomPointTest : AbstractDetourTest
[Test]
public void testRandomWithinCircle()
{
NavMeshQuery.FRand f = new NavMeshQuery.FRand(1);
FRand f = new FRand(1);
QueryFilter filter = new DefaultQueryFilter();
FindRandomPointResult point = query.findRandomPoint(filter, f).result;
float radius = 5f;
@ -108,7 +108,7 @@ public class RandomPointTest : AbstractDetourTest
[Test]
public void testPerformance()
{
NavMeshQuery.FRand f = new NavMeshQuery.FRand(1);
FRand f = new FRand(1);
QueryFilter filter = new DefaultQueryFilter();
FindRandomPointResult point = query.findRandomPoint(filter, f).result;
float radius = 5f;