Esempio n. 1
0
        /*
         * RBF Training point
         * A draggable RBF training point for the sphere RBF ccontroller
         */
        public static RBFTrainingAttachment CreateRBFSphereTraining()
        {
            GameObject            training = Instantiate(Instance.rbfSphereTrainingPrefab) as GameObject;
            RBFTrainingAttachment attach   = training.GetComponent <RBFTrainingAttachment>();

            return(attach);
        }
    /*
     * Creates a training point at a position or transform location
     */
    //public RBFTrainingAttachment CreateTrainingPoint(){
    //    RBFTrainingAttachment training = UI.UIFactory.CreateRBFSphereTraining();
    //    training.owner = this;
    //    training.transform.position = transform.position;
    //    training.transform.localScale = transform.localScale;
    //    training.transform.parent = transform;

    //    foreach(RBFPlugAttachment plug in m_plugs)
    //        training.StorePlugValue(plug);

    //    m_trainingPoints.Add(training);
    //    ResetRBF();
    //    return training;
    //}

    public override bool AddDockableAttachment(BaseAttachment attach)
    {
        if (base.AddDockableAttachment(attach))
        {
            attach.rigidbody.isKinematic = true;

            RBFTrainingAttachment rbfAttach = attach as RBFTrainingAttachment;
            rbfAttach.owner = this;
            rbfAttach.SetToolmodeResponse(new BaseTool.ToolMode[] {
                BaseTool.ToolMode.PRIMARY,
                BaseTool.ToolMode.GRABBING
            });
            rbfAttach.SetCloneable(false);
            rbfAttach.SetIsDraggable(true);
            rbfAttach.SetIsDockable(true);

            foreach (RBFPlugAttachment plug in m_plugs)
            {
                rbfAttach.StorePlugValue(plug);
            }

            SetSelectedtraining(rbfAttach);
            return(true);
        }
        return(false);
    }
    public void SetSelectedtraining(RBFTrainingAttachment training)
    {
        if (m_selectedTraining != null)
        {
            m_selectedTraining.SetSelected(false);
        }
        m_selectedTraining = training;
        m_selectedTraining.SetSelected(true);

        foreach (RBFPlugAttachment plug in m_plugs)
        {
            plug.SetVal((float)training.plugValues[plug], true);
        }
    }
    public override void RemoveDockableAttachment(BaseAttachment attach)
    {
        base.RemoveDockableAttachment(attach);

        RBFTrainingAttachment rbfAttach = attach as RBFTrainingAttachment;

        rbfAttach.SetToolmodeResponse(new BaseTool.ToolMode[] {
            BaseTool.ToolMode.GRABBING
        });

        foreach (RBFPlugAttachment plug in m_plugs)
        {
            rbfAttach.RemovePlugValue(plug);
        }

        attach.rigidbody.isKinematic = false;
    }