public void ResetState(NodeRemoveEvent evt, TankPartIntersectionWithCameraMapVisibleNode tank)
        {
            TankPartIntersectionWithCameraData[] tankPartIntersectionMap = tank.tankPartIntersectionWithCameraMap.TankPartIntersectionMap;
            int length = tankPartIntersectionMap.Length;

            for (int i = 0; i < length; i++)
            {
                TankPartIntersectionWithCameraData data = tankPartIntersectionMap[i];
                Entity tankPart = data.entity;
                this.UpdateState(tankPart, false);
            }
        }
        private void CheckCameraVisualIntersection(TankPartIntersectionWithCameraMapVisibleNode tank, CameraNode camera)
        {
            Vector3 position = camera.cameraRootTransform.Root.position;

            TankPartIntersectionWithCameraData[] tankPartIntersectionMap = tank.tankPartIntersectionWithCameraMap.TankPartIntersectionMap;
            int length = tankPartIntersectionMap.Length;

            for (int i = 0; i < length; i++)
            {
                TankPartIntersectionWithCameraData data = tankPartIntersectionMap[i];
                Collider collider        = data.collider;
                Entity   tankPart        = data.entity;
                bool     hasIntersection = this.CheckPointInsideCollider(position, collider);
                this.UpdateState(tankPart, hasIntersection);
            }
        }
 public void CheckCameraVisualIntersection(EarlyUpdateEvent evt, TankPartIntersectionWithCameraMapVisibleNode tank, [JoinAll] CameraNode camera)
 {
     this.CheckCameraVisualIntersection(tank, camera);
 }