コード例 #1
0
ファイル: PMRoadGen.cs プロジェクト: HughTyson/HonoursProject
    void CreateLftRgtXAxis(int lft_rgt, RoadSegment segment)
    {
        //lft_rgt is 1 when going left, -1 when going right
        Vector3 pos;
        Vector3 scale;

        GameObject proposed_road = Instantiate(road_segment);

        float value = GM_.Instance.procedural.GetPointCutOff(segment.transform.position.x, segment.transform.position.z + (lft_rgt * min_segment_length));

        float random_length_up = min_segment_length + ((max_segment_length - min_segment_length) * value);


        pos    = segment.transform.position;
        pos.x += lft_rgt * (random_length_up / 2) + (lft_rgt * segment_width / 2);

        pos.z = Random.Range(segment.transform.position.z - ((segment.transform.localScale.x / 2) - (0.3f * (segment.transform.localScale.x / 2))), segment.transform.position.z + ((segment.transform.localScale.x / 2) - (0.3f * (segment.transform.localScale.x / 2))));

        scale   = segment.transform.localScale;
        scale.x = random_length_up;
        scale.z = segment_width;
        proposed_road.GetComponent <RoadSegment>().RoadSegmentInit(pos, scale, Mathf.Round(segment.transform.rotation.eulerAngles.y + (90)), segment.GetTransform(), new Vector3(lft_rgt, 0, 0), proposed_road);
        proposed_road.GetComponent <RoadSegment>().AddConnectedSegmentEndPoint(segment.GetObj());
        segment.AddConnectedSegmentMidPoints(proposed_road);
        segment.AddChildNode(proposed_road);


        road_segment_queue.Enqueue(proposed_road);
    }
コード例 #2
0
ファイル: PMRoadGen.cs プロジェクト: HughTyson/HonoursProject
    void CreateFwdBckZAxis(int fwd_bck, RoadSegment segment)
    {
        //fwd_bck is 1 when going forward, -1 when going back
        Vector3 pos;
        Vector3 scale;

        GameObject proposed_road = Instantiate(road_segment);

        float value = GM_.Instance.procedural.GetPointCutOff(segment.transform.position.x + (fwd_bck * min_segment_length), segment.transform.position.z);

        float random_length_forward = min_segment_length + ((max_segment_length - min_segment_length) * value);

        pos     = segment.transform.position;
        pos.z  += fwd_bck * ((segment.transform.localScale.x / 2) + (random_length_forward / 2));
        scale   = segment.transform.localScale;
        scale.x = random_length_forward;
        scale.z = segment_width;
        proposed_road.GetComponent <RoadSegment>().RoadSegmentInit(pos, scale, Mathf.Round(segment.transform.rotation.eulerAngles.y), segment.GetTransform(), new Vector3(0, 0, fwd_bck), proposed_road);
        proposed_road.GetComponent <RoadSegment>().AddConnectedSegmentEndPoint(segment.GetObj());
        segment.AddConnectedSegmentEndPoint(proposed_road);
        segment.AddChildNode(proposed_road);


        road_segment_queue.Enqueue(proposed_road);
    }