Example #1
0
    //public static Bounds GetActiveConduitBounds()
    //{
    //    return m_activeConduit.mesh.bounds;
    //}

    public static void LinkActiveConduit(Bend bend)
    {
        Debug.Log("ConduitManager: LinkActiveConduit()");
        // Remove any current Decorator component objects from Active Conduit
        AConduitDecorator decorator = m_activeConduit.GetComponentInChildren <AConduitDecorator>();

        if (decorator != null)
        {
            decorator.OnRemove();
            //Destroy( decorator.gameObject );
            m_activeConduit.transform.DestroyChildren();
        }

        m_activeConduit.Link(bend);

        // Set Decorator (if available)
        decorator = ConduitDecoratorFactory.Get(bend.type);
        if (decorator != null)
        {
            m_activeDecorator = Instantiate(decorator);
            m_activeDecorator.transform.SetParent(m_activeConduit.transform, false);
            m_activeDecorator.transform.localPosition = Vector3.zero; // @TODO - Redundant?
            m_activeDecorator.Set(m_activeConduit);
        }
        else
        {
            m_activeDecorator = null;
        }
    }