コード例 #1
0
        public static IPhysicsShape Unwrap(BasePhysicsShapeRemoteData data)
        {
            var collisionGroup = CollisionGroups.GetCollisionGroup(data.CollisionGroupId);

            return(data switch
            {
                CircleShapeRemoteData circleData
                => new CircleShape(circleData.Center,
                                   circleData.Radius,
                                   collisionGroup),
                RectangleShapeRemoteData rectangleData
                => new RectangleShape(rectangleData.Position,
                                      rectangleData.Size,
                                      collisionGroup),

                LineShapeRemoteData lineData
                => new LineShape(lineData.BasePosition,
                                 lineData.Direction,
                                 collisionGroup),

                LineSegmentShapeRemoteData lineSegmentData
                => new LineSegmentShape(lineSegmentData.Point1,
                                        lineSegmentData.Point2,
                                        collisionGroup),

                PointShapeRemoteData pointData
                => new PointShape(pointData.Point,
                                  collisionGroup),

                _ => throw new ArgumentOutOfRangeException("Unknown shape type: " + data.GetType().Name)
            });
コード例 #2
0
        private void ClientRemote_ProcessServerDebugPhysicsTesting(BasePhysicsShapeRemoteData wrappedShape)
        {
            var shape = PhysicsShapeRemoteDataHelper.Unwrap(wrappedShape);

            ClientComponentPhysicsSpaceVisualizer.ProcessServerDebugPhysicsTesting(shape);
        }