コード例 #1
0
ファイル: TerrainRoller.cs プロジェクト: samhooke/Rollabout
    public override void AssignBlueprint(BlueprintPart blueprintPart)
    {
        this.blueprintPart = blueprintPart;

        // Convert the blueprint into a physical thing
        this.rollerPart = new RollerPart(this);
        this.rollerPart.SetParent(transform);

        if (requireNodes)
        {
            // Create the relevant nodes for this object
            switch (blueprintPart.GetTerrainBlueprintType())
            {
            case TerrainBlueprintType.StraightLine:
                nodes    = new ObjectNode[2];
                nodes[0] = CreateNode(blueprintPart.GetNodePosition(0), 0);
                nodes[1] = CreateNode(blueprintPart.GetNodePosition(1), 0);
                break;

            case TerrainBlueprintType.CurveBezierCubic:
                nodes    = new ObjectNode[2];
                nodes[0] = CreateNode(blueprintPart.GetNodePosition(0), 1);
                nodes[0].MoveControl(0, blueprintPart.GetNodePosition(1));
                nodes[1] = CreateNode(blueprintPart.GetNodePosition(3), 1);
                nodes[1].MoveControl(0, blueprintPart.GetNodePosition(2));
                break;

            case TerrainBlueprintType.CurveCircularArc:
                nodes    = new ObjectNode[2];
                nodes[0] = CreateNode(blueprintPart.GetNodePosition(0), 1);
                nodes[0].MoveControl(0, blueprintPart.GetNodePosition(1));
                nodes[1] = CreateNode(blueprintPart.GetNodePosition(2), 0);
                break;
            }
        }

        // Create the terrain with the correct segment lengths
        this.Regenerate();
    }
コード例 #2
0
    private void CreatePart()
    {
        // Create the blank blueprint
        switch (this.terrainInfo.terrainBlueprintType)
        {
        case TerrainBlueprintType.StraightLine:
            part = new StraightLine();
            break;

        case TerrainBlueprintType.CurveBezierCubic:
            part = new CurveBezierCubic();
            break;

        case TerrainBlueprintType.CurveCircularArc:
            part = new CurveCircularArc();
            break;

        default:
            Debug.LogError("Unknown part [" + part + "]. Defaulting to StraightLine.");
            goto case TerrainBlueprintType.StraightLine;
        }

        nodes = new Vector3[part.GetNodeAmount()];
    }
コード例 #3
0
ファイル: TerrainBase.cs プロジェクト: samhooke/Rollabout
 public abstract void AssignBlueprint(BlueprintPart blueprintPart);
コード例 #4
0
 public TerrainPart(BlueprintPart blueprintPart)
 {
     this.blueprintPart = blueprintPart;
 }