本文整理汇总了C#中NetInfo.SetSegmentsTexture方法的典型用法代码示例。如果您正苦于以下问题:C# NetInfo.SetSegmentsTexture方法的具体用法?C# NetInfo.SetSegmentsTexture怎么用?C# NetInfo.SetSegmentsTexture使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NetInfo
的用法示例。
在下文中一共展示了NetInfo.SetSegmentsTexture方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BuildUp
public void BuildUp(NetInfo info, NetInfoVersion version)
{
///////////////////////////
// Template //
///////////////////////////
var highwayInfo = ToolsCSL.FindPrefab<NetInfo>("Highway");
///////////////////////////
// 3DModeling //
///////////////////////////
if (version == NetInfoVersion.Ground)
{
info.m_surfaceLevel = 0;
info.m_class = highwayInfo.m_class.Clone("LargeHighway");
var segments0 = info.m_segments[0];
var nodes0 = info.m_nodes[0];
segments0.m_backwardForbidden = NetSegment.Flags.None;
segments0.m_backwardRequired = NetSegment.Flags.None;
segments0.m_forwardForbidden = NetSegment.Flags.None;
segments0.m_forwardRequired = NetSegment.Flags.None;
var nodes1 = nodes0.ShallowClone();
nodes0.m_flagsForbidden = NetNode.Flags.Transition;
nodes0.m_flagsRequired = NetNode.Flags.None;
nodes1.m_flagsForbidden = NetNode.Flags.None;
nodes1.m_flagsRequired = NetNode.Flags.Transition;
var grndMesh = Highway6LMeshes.GetGroundData().CreateMesh("HIGHWAY_6L_GROUND");
var grndTransMesh = Highway6LMeshes.GetGroundTransitionData().CreateMesh("HIGHWAY_6L_GROUND_TRS");
segments0.m_mesh = grndMesh;
nodes0.m_mesh = grndMesh;
nodes1.m_mesh = grndTransMesh;
info.m_segments = new[] { segments0 };
info.m_nodes = new[] { nodes0, nodes1 };
}
///////////////////////////
// Texturing //
///////////////////////////
switch (version)
{
case NetInfoVersion.Ground:
info.SetSegmentsTexture(
new TexturesSet(
@"NewNetwork\Highway6L\Textures\Ground_Segment__MainTex.png",
@"NewNetwork\Highway6L\Textures\Ground_Segment__APRMap.png"));
info.SetNodesTexture(
new TexturesSet
(@"NewNetwork\Highway6L\Textures\Ground_Node__MainTex.png",
@"NewNetwork\Highway6L\Textures\Ground_Node__APRMap.png"),
new TexturesSet
(@"NewNetwork\Highway6L\Textures\Ground_NodeLOD__MainTex.png",
@"NewNetwork\Highway6L\Textures\Ground_NodeLOD__APRMap.png",
@"NewNetwork\Highway6L\Textures\Ground_NodeLOD__XYSMap.png"));
break;
case NetInfoVersion.Elevated:
case NetInfoVersion.Bridge:
info.SetNodesTexture(
new TexturesSet
(@"NewNetwork\Highway6L\Textures\Elevated_Node__MainTex.png",
@"NewNetwork\Highway6L\Textures\Elevated_Node__APRMap.png"));
// Lets leave the crossings there until we have a fix
//new TexturesSet
// (@"NewNetwork\Highway6L\Textures\Elevated_NodeLOD__MainTex.png",
// @"NewNetwork\Highway6L\Textures\Elevated_NodeLOD__APRMap.png",
// @"NewNetwork\Highway6L\Textures\Elevated_NodeLOD__XYSMap.png"));
break;
case NetInfoVersion.Slope:
info.SetNodesTexture(
new TexturesSet
(@"NewNetwork\Highway6L\Textures\Slope_Node__MainTex.png",
@"NewNetwork\Highway6L\Textures\Slope_Node__APRMap.png"),
new TexturesSet
(@"NewNetwork\Highway6L\Textures\Slope_NodeLOD__MainTex.png",
@"NewNetwork\Highway6L\Textures\Slope_NodeLOD__APRMap.png",
@"NewNetwork\Highway6L\Textures\Slope_NodeLOD__XYSMap.png"));
break;
case NetInfoVersion.Tunnel:
break;
}
///////////////////////////
// Set up //
///////////////////////////
info.m_availableIn = ItemClass.Availability.All;
info.m_createPavement = (version == NetInfoVersion.Slope);
info.m_createGravel = (version == NetInfoVersion.Ground);
//.........这里部分代码省略.........
示例2: BuildUp
public void BuildUp(NetInfo info, NetInfoVersion version)
{
///////////////////////////
// Texturing //
///////////////////////////
switch (version)
{
case NetInfoVersion.Ground:
info.SetSegmentsTexture(
new TexturesSet(
@"NewNetwork\Highway6L\Textures\Ground_Segment__MainTex.png",
@"NewNetwork\Highway6L\Textures\Ground_Segment__APRMap.png"));
info.SetNodesTexture(
new TexturesSet
(@"NewNetwork\Highway6L\Textures\Ground_Node__MainTex.png",
@"NewNetwork\Highway6L\Textures\Ground_Node__APRMap.png"),
new TexturesSet
(@"NewNetwork\Highway6L\Textures\Ground_NodeLOD__MainTex.png",
@"NewNetwork\Highway6L\Textures\Ground_NodeLOD__APRMap.png",
@"NewNetwork\Highway6L\Textures\Ground_NodeLOD__XYSMap.png"));
break;
case NetInfoVersion.Elevated:
case NetInfoVersion.Bridge:
info.SetNodesTexture(
new TexturesSet
(@"NewNetwork\Highway6L\Textures\Elevated_Node__MainTex.png",
@"NewNetwork\Highway6L\Textures\Elevated_Node__APRMap.png"),
new TexturesSet
(@"NewNetwork\Highway6L\Textures\Elevated_NodeLOD__MainTex.png",
@"NewNetwork\Highway6L\Textures\Elevated_NodeLOD__APRMap.png",
@"NewNetwork\Highway6L\Textures\Elevated_NodeLOD__XYSMap.png"));
break;
case NetInfoVersion.Slope:
info.SetNodesTexture(
new TexturesSet
(@"NewNetwork\Highway6L\Textures\Slope_Node__MainTex.png",
@"NewNetwork\Highway6L\Textures\Slope_Node__APRMap.png"),
new TexturesSet
(@"NewNetwork\Highway6L\Textures\Slope_NodeLOD__MainTex.png",
@"NewNetwork\Highway6L\Textures\Slope_NodeLOD__APRMap.png",
@"NewNetwork\Highway6L\Textures\Slope_NodeLOD__XYSMap.png"));
break;
case NetInfoVersion.Tunnel:
break;
}
///////////////////////////
// Set up //
///////////////////////////
var highwayInfo = ToolsCSL.FindPrefab<NetInfo>("Highway");
info.m_createPavement = (version != NetInfoVersion.Ground);
info.m_createGravel = (version == NetInfoVersion.Ground);
info.m_averageVehicleLaneSpeed = 2f;
info.m_hasParkingSpaces = false;
info.m_hasPedestrianLanes = false;
info.m_UnlockMilestone = highwayInfo.m_UnlockMilestone;
// Activate with a new mesh
//info.m_class = highwayInfo.m_class;
// Test
//info.m_surfaceLevel = 0;
// Disabling Parkings and Peds
foreach (var l in info.m_lanes)
{
switch (l.m_laneType)
{
case NetInfo.LaneType.Parking:
l.m_laneType = NetInfo.LaneType.None;
break;
case NetInfo.LaneType.Pedestrian:
l.m_laneType = NetInfo.LaneType.None;
break;
}
}
// Setting up lanes
var vehiculeLanes = info.m_lanes
.Where(l => l.m_laneType != NetInfo.LaneType.None)
.OrderBy(l => l.m_similarLaneIndex)
.ToArray();
var nbLanes = vehiculeLanes.Count(); // Supposed to be 6
const float laneWidth = 2f; // TODO: Make it 2.5 with new texture
const float laneWidthPad = 1f;
const float laneWidthTotal = laneWidth + laneWidthPad;
var positionStart = (laneWidthTotal * ((1f - nbLanes) / 2f));
for (int i = 0; i < vehiculeLanes.Length; i++)
{
var l = vehiculeLanes[i];
//.........这里部分代码省略.........
示例3: BuildUp
public void BuildUp(NetInfo info, NetInfoVersion version)
{
///////////////////////////
// Template //
///////////////////////////
var highwayInfo = ToolsCSL.FindPrefab<NetInfo>("Highway");
///////////////////////////
// 3DModeling //
///////////////////////////
if (version == NetInfoVersion.Ground)
{
info.m_surfaceLevel = 0;
info.m_class = highwayInfo.m_class.Clone("NExtHighway");
var segments0 = info.m_segments[0];
var nodes0 = info.m_nodes[0];
segments0.m_backwardForbidden = NetSegment.Flags.None;
segments0.m_backwardRequired = NetSegment.Flags.None;
segments0.m_forwardForbidden = NetSegment.Flags.None;
segments0.m_forwardRequired = NetSegment.Flags.None;
var nodes1 = nodes0.ShallowClone();
nodes0.m_flagsForbidden = NetNode.Flags.Transition;
nodes0.m_flagsRequired = NetNode.Flags.None;
nodes1.m_flagsForbidden = NetNode.Flags.None;
nodes1.m_flagsRequired = NetNode.Flags.Transition;
segments0.SetMeshes
(@"NewNetwork\Highway2L\Meshes\Ground.obj",
@"NewNetwork\Highway2L\Meshes\Ground_LOD.obj");
nodes0.SetMeshes
(@"NewNetwork\Highway2L\Meshes\Ground.obj",
@"NewNetwork\Highway2L\Meshes\Ground_Node_LOD.obj");
nodes1.SetMeshes
(@"NewNetwork\Highway2L\Meshes\Ground_Trans.obj",
@"NewNetwork\Highway2L\Meshes\Ground_Trans_LOD.obj");
info.m_segments = new[] { segments0 };
info.m_nodes = new[] { nodes0, nodes1 };
}
///////////////////////////
// Texturing //
///////////////////////////
switch (version)
{
case NetInfoVersion.Ground:
info.SetSegmentsTexture(
new TexturesSet
(@"NewNetwork\Highway2L\Textures\Ground_Segment__MainTex.png",
@"NewNetwork\Highway2L\Textures\Ground_Segment__AlphaMap.png"),
new TexturesSet
(@"NewNetwork\Highway2L\Textures\Ground_SegmentLOD__MainTex.png",
@"NewNetwork\Highway2L\Textures\Ground_SegmentLOD__AlphaMap.png",
@"NewNetwork\Highway2L\Textures\Ground_SegmentLOD__XYSMap.png"));
info.SetNodesTexture(
new TexturesSet
(@"NewNetwork\Highway2L\Textures\Ground_Node__MainTex.png",
@"NewNetwork\Highway2L\Textures\Ground_Node__AlphaMap.png"),
new TexturesSet
(@"NewNetwork\Highway2L\Textures\Ground_NodeLOD__MainTex.png",
@"NewNetwork\Highway2L\Textures\Ground_NodeLOD__AlphaMap.png",
@"NewNetwork\Highway2L\Textures\Ground_NodeLOD__XYSMap.png"));
break;
case NetInfoVersion.Elevated:
case NetInfoVersion.Bridge:
info.SetNodesTexture(
new TexturesSet
(@"NewNetwork\Highway2L\Textures\Elevated_Node__MainTex.png",
@"NewNetwork\Highway2L\Textures\Elevated_Node__AlphaMap.png"));
// Lets leave the crossings there until we have a fix
//new TexturesSet
// (@"NewNetwork\Highway2L\Textures\Elevated_NodeLOD__MainTex.png",
// @"NewNetwork\Highway2L\Textures\Elevated_NodeLOD__AlphaMap.png",
// @"NewNetwork\Highway2L\Textures\Elevated_NodeLOD__XYSMap.png"));
break;
case NetInfoVersion.Slope:
info.SetNodesTexture(
new TexturesSet
(@"NewNetwork\Highway2L\Textures\Slope_Node__MainTex.png",
@"NewNetwork\Highway2L\Textures\Slope_Node__AlphaMap.png"),
new TexturesSet
(@"NewNetwork\Highway2L\Textures\Slope_NodeLOD__MainTex.png",
@"NewNetwork\Highway2L\Textures\Slope_NodeLOD__AlphaMap.png",
@"NewNetwork\Highway2L\Textures\Slope_NodeLOD__XYSMap.png"));
break;
case NetInfoVersion.Tunnel:
break;
//.........这里部分代码省略.........
示例4: BuildUp
public void BuildUp(NetInfo info, NetInfoVersion version)
{
///////////////////////////
// Template //
///////////////////////////
var onewayRoadInfo = ToolsCSL.FindPrefab<NetInfo>("Oneway Road");
///////////////////////////
// 3DModeling //
///////////////////////////
if (version == NetInfoVersion.Ground)
{
var segments0 = info.m_segments[0];
var nodes0 = info.m_nodes[0];
var grndMesh = OneWay1LSegmentModel.BuildMesh().CreateMesh("OW_1L_GROUND");
segments0.m_mesh = grndMesh;
nodes0.m_mesh = grndMesh;
info.m_segments = new[] { segments0 };
info.m_nodes = new[] { nodes0 };
}
///////////////////////////
// Texturing //
///////////////////////////
switch (version)
{
case NetInfoVersion.Ground:
info.SetSegmentsTexture(
new TexturesSet
(@"NewNetwork\OneWay1L\Textures\Ground_Segment__MainTex.png",
@"NewNetwork\OneWay1L\Textures\Ground_Segment__AlphaMap.png"));
info.SetNodesTexture(
new TexturesSet
(@"NewNetwork\OneWay1L\Textures\Ground_Node__MainTex.png",
@"NewNetwork\OneWay1L\Textures\Ground_Node__AlphaMap.png"));
break;
}
///////////////////////////
// Set up //
///////////////////////////
info.m_class = onewayRoadInfo.m_class.Clone("SmallOneway");
info.m_hasParkingSpaces = false;
info.m_halfWidth = 5.0f;
info.m_pavementWidth = 2f;
// Setting up lanes
var parkingLanes = info.m_lanes
.Where(l => l.m_laneType == NetInfo.LaneType.Parking)
.ToList();
var vehicleLanes = info.m_lanes
.Where(l => l.m_laneType != NetInfo.LaneType.None)
.Where(l => l.m_laneType != NetInfo.LaneType.Pedestrian)
.Where(l => l.m_laneType != NetInfo.LaneType.Parking)
.ToList();
var pedestrianLanes = info.m_lanes
.Where(l => l.m_laneType == NetInfo.LaneType.Pedestrian)
.OrderBy(l => l.m_similarLaneIndex)
.ToList();
var vehicleLane = vehicleLanes[0];
var parkingLane = parkingLanes[0];
vehicleLanes[1].m_laneType = NetInfo.LaneType.None;
parkingLanes[1].m_laneType = NetInfo.LaneType.None;
vehicleLane.m_width = 3.5f;
vehicleLane.m_verticalOffset = -0.3f;
vehicleLane.m_position = -1.25f;
vehicleLane.m_speedLimit = 0.7f;
parkingLane.m_width = 2.5f;
parkingLane.m_verticalOffset = -0.3f;
parkingLane.m_position = 1.75f;
var roadHalfWidth = 3f;
var pedWidth = 2f;
for (var i = 0; i < pedestrianLanes.Count; i++)
{
var multiplier = pedestrianLanes[i].m_position / Math.Abs(pedestrianLanes[i].m_position);
pedestrianLanes[i].m_width = pedWidth;
pedestrianLanes[i].m_position = multiplier * (roadHalfWidth + (.5f * pedWidth));
foreach (var prop in pedestrianLanes[i].m_laneProps.m_props)
{
prop.m_position.x += multiplier * roadHalfWidth;
}
}
if (version == NetInfoVersion.Ground)
{
var playerNetAI = info.GetComponent<PlayerNetAI>();
//.........这里部分代码省略.........
示例5: BuildUp
public void BuildUp(NetInfo info, NetInfoVersion version)
{
///////////////////////////
// Template //
///////////////////////////
var mediumRoadInfo = ToolsCSL.FindPrefab<NetInfo>("Medium Road");
///////////////////////////
// Texturing //
///////////////////////////
switch (version)
{
case NetInfoVersion.Ground:
info.SetSegmentsTexture(
new TexturesSet
(@"NewNetwork\MediumAvenue4L\Textures\Ground_Segment__MainTex.png",
@"NewNetwork\MediumAvenue4L\Textures\Ground_Segment__AlphaMap.png"),
new TexturesSet
(@"NewNetwork\MediumAvenue4L\Textures\Ground_SegmentLOD__MainTex.png",
@"NewNetwork\MediumAvenue4L\Textures\Ground_SegmentLOD__AlphaMap.png",
@"NewNetwork\MediumAvenue4L\Textures\Ground_SegmentLOD__XYSMap.png"));
info.SetNodesTexture(
new TexturesSet
(null,
@"NewNetwork\MediumAvenue4L\Textures\Ground_Node__AlphaMap.png"));
break;
}
///////////////////////////
// Set up //
///////////////////////////
info.m_class = mediumRoadInfo.m_class.Clone(MediumAvenueHelper.CLASS_NAME);
info.m_UnlockMilestone = mediumRoadInfo.m_UnlockMilestone;
// Setting up lanes
var vehicleLaneTypes = new[]
{
NetInfo.LaneType.Vehicle,
NetInfo.LaneType.PublicTransport,
NetInfo.LaneType.CargoVehicle,
NetInfo.LaneType.TransportVehicle
};
var vehicleLanes = mediumRoadInfo
.m_lanes
.Where(l => vehicleLaneTypes.Contains(l.m_laneType))
.Select(l => l.ShallowClone())
.OrderBy(l => l.m_position)
.ToArray();
var nonVehicleLanes = info.m_lanes
.Where(l => !vehicleLaneTypes.Contains(l.m_laneType))
.ToArray();
info.m_lanes = vehicleLanes
.Union(nonVehicleLanes)
.ToArray();
for (var i = 0; i < vehicleLanes.Length; i++)
{
var lane = vehicleLanes[i];
switch (i)
{
// Inside lane
case 1:
case 2:
if (lane.m_position < 0)
{
lane.m_position += 0.5f;
}
else
{
lane.m_position += -0.5f;
}
break;
}
}
info.Setup50LimitProps();
if (version == NetInfoVersion.Ground)
{
var mrPlayerNetAI = mediumRoadInfo.GetComponent<PlayerNetAI>();
var playerNetAI = info.GetComponent<PlayerNetAI>();
if (mrPlayerNetAI != null && playerNetAI != null)
{
playerNetAI.m_constructionCost = mrPlayerNetAI.m_constructionCost * 9 / 10; // 10% decrease
playerNetAI.m_maintenanceCost = mrPlayerNetAI.m_maintenanceCost * 9 / 10; // 10% decrease
}
var mrRoadBaseAI = mediumRoadInfo.GetComponent<RoadBaseAI>();
var roadBaseAI = info.GetComponent<RoadBaseAI>();
if (mrRoadBaseAI != null && roadBaseAI != null)
{
//.........这里部分代码省略.........
示例6: BuildUp
public void BuildUp(NetInfo info, NetInfoVersion version)
{
///////////////////////////
// Template //
///////////////////////////
var basicRoadInfo = ToolsCSL.FindPrefab<NetInfo>("Basic Road");
///////////////////////////
// 3DModeling //
///////////////////////////
// NOTE: Lets dont go there yet, since we will need Segment, Bus stop, transition and transition bus stop meshes.
// Otherwise, we will be forced to unsupport the bus stops on the Small Avenue, which will cause crash on people allready using it with bus stops.
//if (version == NetInfoVersion.Ground)
//{
// info.m_surfaceLevel = 0;
// info.m_class = basicRoadInfo.m_class.Clone("SmallAvenue");
// var segments0 = info.m_segments[0];
// var nodes0 = info.m_nodes[0];
// var grndMesh = SmallAvenue4LMeshes.GetGroundData().CreateMesh("SMALLROAD_4L_GROUND");
// segments0.m_mesh = grndMesh;
// nodes0.m_mesh = grndMesh;
//}
///////////////////////////
// Texturing //
///////////////////////////
switch (version)
{
case NetInfoVersion.Ground:
info.SetSegmentsTexture(
new TexturesSet
(@"NewNetwork\SmallAvenue4L\Textures\Ground_Segment__MainTex.png",
@"NewNetwork\SmallAvenue4L\Textures\Ground_Segment__AlphaMap.png"));
break;
}
///////////////////////////
// Set up //
///////////////////////////
info.m_hasParkingSpaces = false;
// Setting up lanes
var vehicleLaneTypes = new[]
{
NetInfo.LaneType.Vehicle,
NetInfo.LaneType.PublicTransport,
NetInfo.LaneType.CargoVehicle,
NetInfo.LaneType.TransportVehicle
};
var vehicleLanes = info.m_lanes
.Where(l =>
l.m_laneType.HasFlag(NetInfo.LaneType.Parking) ||
vehicleLaneTypes.Contains(l.m_laneType))
.OrderBy(l => l.m_position)
.ToArray();
for (int i = 0; i < vehicleLanes.Length; i++)
{
var lane = vehicleLanes[i];
if (lane.m_laneType.HasFlag(NetInfo.LaneType.Parking))
{
int closestVehicleLaneId;
if (i - 1 >= 0 && vehicleLaneTypes.Contains(vehicleLanes[i - 1].m_laneType))
{
closestVehicleLaneId = i - 1;
}
else if (i + 1 < vehicleLanes.Length && vehicleLaneTypes.Contains(vehicleLanes[i + 1].m_laneType))
{
closestVehicleLaneId = i + 1;
}
else
{
continue; // Not supposed to happen
}
var closestVehicleLane = vehicleLanes[closestVehicleLaneId];
SetLane(lane, closestVehicleLane);
if (lane.m_position < 0)
{
lane.m_position += 0.3f;
}
else
{
lane.m_position -= 0.3f;
}
}
else
{
if (lane.m_position < 0)
//.........这里部分代码省略.........
示例7: BuildUp
public void BuildUp(NetInfo info, NetInfoVersion version)
{
///////////////////////////
// 3DModeling //
///////////////////////////
if (version == NetInfoVersion.Ground)
{
info.m_surfaceLevel = 0;
var segments0 = info.m_segments[0];
var nodes0 = info.m_nodes[0];
segments0.SetMeshes
(@"NewNetwork\Alley2L\Meshes\Ground.obj",
@"NewNetwork\Alley2L\Meshes\Ground_LOD.obj");
nodes0.SetMeshes
(@"NewNetwork\Alley2L\Meshes\Ground.obj",
@"NewNetwork\Alley2L\Meshes\Ground_Node_LOD.obj");
info.m_segments = new[] { segments0 };
info.m_nodes = new[] { nodes0 };
}
///////////////////////////
// Texturing //
///////////////////////////
switch (version)
{
case NetInfoVersion.Ground:
info.SetSegmentsTexture(
new TexturesSet
(@"NewNetwork\Alley2L\Textures\Ground_Segment__MainTex.png",
@"NewNetwork\Alley2L\Textures\Ground_Segment__AlphaMap.png"));
//info.SetNodesTexture(
// new TexturesSet
// (@"NewNetwork\Alley2L\Textures\Ground_Node__MainTex.png",
// @"NewNetwork\Alley2L\Textures\Ground_Node__AlphaMap.png"));
break;
}
///////////////////////////
// Set up //
///////////////////////////
info.m_hasParkingSpaces = false;
info.m_halfWidth = 4f;
info.m_pavementWidth = 2f;
var vehicleLanes = info.m_lanes
.Where(l => l.m_laneType != NetInfo.LaneType.None)
.Where(l => l.m_laneType != NetInfo.LaneType.Pedestrian)
.Where(l => l.m_laneType != NetInfo.LaneType.Parking)
.ToList();
var pedestrianLanes = info.m_lanes
.Where(l => l.m_laneType == NetInfo.LaneType.Pedestrian)
.OrderBy(l => l.m_similarLaneIndex)
.ToList();
var parkingLanes = info.m_lanes
.Where(l => l.m_laneType == NetInfo.LaneType.Parking)
.ToList();
foreach (var parkingLane in parkingLanes)
{
parkingLane.m_laneType = NetInfo.LaneType.None;
}
var roadHalfWidth = 2f;
var pedWidth = 2f;
for (var i = 0; i < vehicleLanes.Count; i++)
{
var multiplier = vehicleLanes[i].m_position / Math.Abs(vehicleLanes[i].m_position);
vehicleLanes[i].m_width = roadHalfWidth;
vehicleLanes[i].m_position = multiplier * 0.5f * roadHalfWidth;
vehicleLanes[i].m_speedLimit = 0.5f;
foreach (var prop in vehicleLanes[i].m_laneProps.m_props)
{
prop.m_position.x = multiplier * 0.4f;
}
}
for (var i = 0; i < pedestrianLanes.Count; i++)
{
var multiplier = pedestrianLanes[i].m_position / Math.Abs(pedestrianLanes[i].m_position);
pedestrianLanes[i].m_width = pedWidth;
pedestrianLanes[i].m_position = multiplier * (roadHalfWidth + (.5f * pedWidth));
foreach (var prop in pedestrianLanes[i].m_laneProps.m_props)
{
prop.m_position.x += multiplier * roadHalfWidth;
}
}
var onewayRoadInfo = ToolsCSL.FindPrefab<NetInfo>("Basic Road");
if (version == NetInfoVersion.Ground)
{
//.........这里部分代码省略.........
示例8: BuildUp
public void BuildUp(NetInfo info, NetInfoVersion version)
{
///////////////////////////
// Texturing //
///////////////////////////
switch (version)
{
case NetInfoVersion.Ground:
info.SetSegmentsTexture(
new TexturesSet
(@"NewNetwork\OneWay4L\Textures\Ground_Segment__MainTex.png",
@"NewNetwork\OneWay4L\Textures\Ground_Segment__AlphaMap.png"));
info.SetNodesTexture(
new TexturesSet
(@"NewNetwork\OneWay4L\Textures\Ground_Node__MainTex.png",
@"NewNetwork\OneWay4L\Textures\Ground_Node__AlphaMap.png"));
break;
}
///////////////////////////
// 3DModeling //
///////////////////////////
//if (version == NetInfoVersion.Ground)
//{
// //info.m_segments[0].m_mesh = (Mesh)Mesh.Instantiate(info.m_segments[0].m_lodMesh);
// //info.m_nodes[0].m_mesh = (Mesh)Mesh.Instantiate(info.m_nodes[0].m_lodMesh);
// info.m_segments[0].m_mesh = OneWay4LMeshes.BuildMesh().CreateMesh("OW_4L_Segment0_Grnd");
// info.m_nodes[0].m_mesh = OneWay4LMeshes.BuildMesh().CreateMesh("OW_4L_Node0_Grnd");
//}
if (version == NetInfoVersion.Ground)
{
var segments0 = info.m_segments[0];
var nodes0 = info.m_nodes[0];
segments0.m_backwardForbidden = NetSegment.Flags.None;
segments0.m_backwardRequired = NetSegment.Flags.None;
segments0.m_forwardForbidden = NetSegment.Flags.None;
segments0.m_forwardRequired = NetSegment.Flags.None;
var nodes1 = nodes0.ShallowClone();
nodes0.m_flagsForbidden = NetNode.Flags.Transition;
nodes0.m_flagsRequired = NetNode.Flags.None;
nodes1.m_flagsForbidden = NetNode.Flags.None;
nodes1.m_flagsRequired = NetNode.Flags.Transition;
var grndMesh = OneWay4LMeshes.GetGroundData().CreateMesh("ONEWAY_4L_GROUND");
var grndTransMesh = OneWay4LMeshes.GetGroundTransitionData().CreateMesh("ONEWAY_4L_GROUND_TRS");
segments0.m_mesh = grndMesh;
nodes0.m_mesh = grndMesh;
nodes1.m_mesh = grndTransMesh;
info.m_segments = new[] { segments0 };
info.m_nodes = new[] { nodes0, nodes1 };
}
///////////////////////////
// Set up //
///////////////////////////
var vehicleLaneWidth = 3f;
var pedWidth = 4f;
var roadHalfWidth = 8f;
var parkingLaneWidth = 2f;
var vehicleLanesToTake = 4;
info.m_halfWidth = 12.0f;
info.m_pavementWidth = pedWidth;
// Disabling Parkings and Peds
//foreach (var l in info.m_lanes)
//{
// if (l.m_laneType == NetInfo.LaneType.Parking)
// {
// l.m_laneType = NetInfo.LaneType.None;
// }
//}
// Setting up lanes
var lanes = info.m_lanes;
var parkingLanes = lanes
.Where(l => l.m_laneType == NetInfo.LaneType.Parking)
.ToList();
var vehicleLanes = lanes
.Where(l => l.m_laneType != NetInfo.LaneType.None)
.Where(l => l.m_laneType != NetInfo.LaneType.Pedestrian)
.Where(l => l.m_laneType != NetInfo.LaneType.Parking)
.Take(vehicleLanesToTake).ToList();
var pedestrianLanes = lanes
.Where(l => l.m_laneType == NetInfo.LaneType.Pedestrian)
.OrderBy(l => l.m_similarLaneIndex)
.ToList();
Debug.Log("NExl: Categorized Lanes");
//.........这里部分代码省略.........