forked from Unity-Technologies/EntityComponentSystemSamples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQueryTester.cs
More file actions
66 lines (59 loc) · 2.25 KB
/
Copy pathQueryTester.cs
File metadata and controls
66 lines (59 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using Unity.Mathematics;
using Unity.Entities;
using UnityEngine;
namespace Unity.Physics.Extensions
{
public unsafe class QueryTester : MonoBehaviour
{
public float Distance = 10.0f;
public Vector3 Direction = new Vector3(1, 0, 0);
public bool CollectAllHits = false;
public bool DrawSurfaceNormal = true;
public bool HighlightLeafCollider = true;
public ColliderType ColliderType;
public bool ColliderQuery;
[Tooltip("Applied only if ColliderQuery == true")]
public float InputColliderScale = 1.0f;
void OnDrawGizmos()
{
Gizmos.color = Color.red;
Vector3 dir = (transform.rotation * Direction) * Distance;
Gizmos.DrawRay(transform.position, dir);
}
}
public class QueryData : IComponentData
{
// authoring data
public float Distance;
public float3 Direction;
public bool CollectAllHits;
public bool DrawSurfaceNormal;
public bool HighlightLeafCollider;
public bool ColliderQuery;
public ColliderType ColliderType;
public float InputColliderScale;
// calculated data
public bool ColliderDataInitialized;
public BlobAssetReference<Collider> Collider;
public BlobAssetReference<Collider>[] ChildrenColliders;
public UnityEngine.Mesh[] ColliderMeshes;
}
class QueryTesterBaker : Baker<QueryTester>
{
public override void Bake(QueryTester authoring)
{
QueryData queryData = new QueryData();
queryData.Distance = authoring.Distance;
queryData.Direction = authoring.Direction;
queryData.CollectAllHits = authoring.CollectAllHits;
queryData.DrawSurfaceNormal = authoring.DrawSurfaceNormal;
queryData.HighlightLeafCollider = authoring.HighlightLeafCollider;
queryData.ColliderQuery = authoring.ColliderQuery;
queryData.ColliderType = authoring.ColliderType;
queryData.InputColliderScale = authoring.InputColliderScale;
queryData.ColliderDataInitialized = false;
var entity = GetEntity(TransformUsageFlags.Dynamic);
AddComponentObject(entity, queryData);
}
}
}