本文整理汇总了C#中Sides.Where方法的典型用法代码示例。如果您正苦于以下问题:C# Sides.Where方法的具体用法?C# Sides.Where怎么用?C# Sides.Where使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sides
的用法示例。
在下文中一共展示了Sides.Where方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: StepAlongPath
private static Int3 StepAlongPath(Room room, Int3 currentLocation, Sides[] possibleSides,
Directions[] possibleDirections, List<Int3> solutionPath, int i, int minPathLength, ref Directions lastDirection)
{
var currentSide = room.roomBuffer[currentLocation.X, currentLocation.Y, currentLocation.Z];
if (lastDirection != Directions.None && UnityEngine.Random.Range(0, 2) == 0)
{
var side = currentSide;
var direction = lastDirection;
var desirableSides = possibleSides
.Where(s => (s & side) == 0 && s != Sides.None &&
(
s == Sides.Left && direction != Directions.Right
|| s == Sides.Right && direction != Directions.Left
|| s == Sides.Top && direction != Directions.Down
|| s == Sides.Bottom && direction != Directions.Up
|| s == Sides.Front && direction != Directions.Back
|| s == Sides.Rear && direction != Directions.Forward
));
if (desirableSides.Any())
{
currentSide = desirableSides.SelectRandom();
room.roomBuffer[currentLocation.X, currentLocation.Y, currentLocation.Z] |= currentSide;
}
}
var intendedLocation = DetermineNextLocation(room, currentLocation, possibleDirections, ref lastDirection);
room.roomBuffer[intendedLocation.X, intendedLocation.Y, intendedLocation.Z] |= currentSide;
currentLocation = intendedLocation;
solutionPath.Add(currentLocation);
return currentLocation;
}