コード例 #1
0
    public override void Set(Conduit conduit)
    {
        m_Conduit = conduit;

        var bend        = m_Conduit.bend;
        var travelColor = bend.GetOutputParameter(EBendParameterName.Travel).color;

        // Create Flags
        float lineWidth = Engine.conduitDiameterM * Mathf.Sin(Mathf.PI * 0.25f);

        m_travelLine1 = FlagRenderer.NewLine(m_Conduit.transform);
        m_travelLine1.SetWidth(lineWidth);
        m_travelLine1.SetColor(travelColor);
        m_travelLine2 = FlagRenderer.NewLine(m_Conduit.transform);
        m_travelLine2.SetWidth(lineWidth);
        m_travelLine2.SetColor(travelColor);

        // Create Obstacle
        m_obstacle = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
        var renderer = m_obstacle.GetComponent <MeshRenderer>();

        renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
        renderer.receiveShadows    = false;
        renderer.material          = material;
        renderer.material.SetColor("_Color", new Color(0.2f, 0.2f, 0.2f, 1f));
        GameObject.DestroyObject(m_obstacle.GetComponent <Collider>());

        m_obstacle.transform.SetParent(transform);
        m_obstacle.transform.localPosition = new Vector3(-k_objstacleLength, 0f, 0f);
        m_obstacle.transform.localRotation = Quaternion.Euler(0f, 0f, 90f);
    }
コード例 #2
0
    public override void Set(Conduit conduit)
    {
        m_Conduit = conduit;

        var bend = m_Conduit.bend;

        //----------------------
        // Create Line Flags
        //----------------------
        m_LineWidth = Engine.conduitDiameterM * Mathf.Sin(Mathf.PI * 0.25f);

        m_TakeUpLine = FlagRenderer.NewLine(transform);
        m_TakeUpLine.SetWidth(m_LineWidth);
        m_TakeUpLine.SetColor(bend.GetOutputParameter(EBendParameterName.StubTakeUp).color);
    }
コード例 #3
0
    public override void Set(Conduit conduit)
    {
        m_Conduit = conduit;

        //----------------------
        // Create Line Flags
        //----------------------
        var bend = m_Conduit.bend;

        m_LineWidth = Engine.conduitDiameterM * Mathf.Sin(Mathf.PI * 0.25f);

        m_RollLine = FlagRenderer.NewLine(transform);
        m_RollLine.SetWidth(m_LineWidth * 0.7f);
        m_RollLine.SetColor(bend.GetInputParameter(EBendParameterName.Roll).color);

        m_RiseLine = FlagRenderer.NewLine(transform);
        m_RiseLine.SetWidth(m_LineWidth * 0.75f);
        m_RiseLine.SetColor(bend.GetInputParameter(EBendParameterName.Rise).color);
        EnableLines(false);

        // Rotate Conduit
        Decorate();
    }
コード例 #4
0
    public override void Set(Conduit conduit)
    {
        Initialize();
        m_Conduit = conduit;

        //----------------------
        // Create Line Flags
        //----------------------
        float lineWidth = Engine.conduitDiameterM * Mathf.Sin(Mathf.PI * 0.25f);

        m_SpreadLine = FlagRenderer.NewLine(m_Conduit.transform);
        m_SpreadLine.SetWidth(lineWidth);

        m_ShiftLine = FlagRenderer.NewLine(transform);
        m_ShiftLine.SetWidth(lineWidth);

        m_FirstMarkLine = FlagRenderer.NewLine(m_Conduit.transform);
        m_FirstMarkLine.SetWidth(lineWidth);

        m_TravelLine = FlagRenderer.NewLine(m_Conduit.transform);
        m_TravelLine.SetWidth(Engine.conduitDiameterM * 0.5f);

        // Set Marker Colors
        var bend = m_Conduit.bend;

        m_SpreadLine.SetColor(bend.GetOutputParameter(EBendParameterName.KickSpread).color);
        m_ShiftLine.SetColor(bend.GetOutputParameter(EBendParameterName.Shift).color);
        m_FirstMarkLine.SetColor(bend.GetOutputParameter(EBendParameterName.KickFirstMark).color);
        m_TravelLine.SetColor(bend.GetOutputParameter(EBendParameterName.KickTravel).color);

        if (m_Conduit.centerlineBendIndices.Count == 4)
        {
            UnityEngine.Debug.Log("ConduitParallelKickDecorator: Set() Decorating...");
            lastAngleDeg = -1;
            Decorate();
        }
    }