示例#1
0
    // Use this for initialization
    void Start()
    {
        toolboxNodes = GameObject.FindGameObjectWithTag("testCubeToolbox").GetComponent <ObjectCollectionNodes>();
        toolbox      = GameObject.FindGameObjectWithTag("testCubeToolbox");

        NodesOutside = new List <CollectionNode>();
    }
    public override void OnInspectorGUI()
    {
        // Draw the default
        base.OnInspectorGUI();

        // Place the button at the bottom
        ObjectCollection myScript = (ObjectCollection)target;

        if (GUILayout.Button("Update Collection"))
        {
            myScript.UpdateCollection();
        }

        ObjectCollectionNodes myNodeScript = (ObjectCollectionNodes)target;

        if (GUILayout.Button("Update Collection"))
        {
            myNodeScript.UpdateCollection();
        }
    }
        // Use this for initialization
        void Start()
        {
            //test, load all the scripts from RosCommunication Folder
            //scriptObjects = Resources.LoadAll("RosTopicSubscriber",typeof(UnityEditor.MonoScript));
            //UnityEditor.MonoScript[] monoScripts = (UnityEditor.MonoScript[])Resources.LoadAll("RosTopicSubscriber",typeof(UnityEditor.MonoScript));
            //Subscriber<Message>[] subscriber = Resources.LoadAll<Subscriber<Message>>("RosTopicSubscriber");
            Subscriber <Message> subscriber = Resources.Load <Subscriber <Message> >("RosTopicSubscriber/ClockSubscriber.cs");

            //MonoScript[] scripts = (MonoScript[])Object.FindObjectsOfTypeIncludingAssets(typeof(MonoScript));
            //ClockSubscriber cs = Resources.Load<ClockSubscriber>("RosTopicSubscriber/ClockSubscriber");
            //ClockSubscriber cs = Resources.Load("RosTopicSubscriber/ClockSubscriber") as ClockSubscriber;

            //var sub = Resources.LoadAll("RosTopicSubscriber", typeof(UnityEditor.MonoScript)).Cast<Subscriber<Message>>().ToArray();

            //Debug.Log("---Größe der scripts array:" + scriptObjects.Length);
            //Debug.Log("---Größe der subscriber array array:" + subscriber.Length);
            //Debug.Log("---Größe der subscriber array array:" + sub.Length);
            //Debug.Log("---SubscriberTopic:" + cs.Topic);
            //Debug.Log("---SubscriberTopic:" + cs.Topic);

            /*
             * foreach (var s in scriptObjects)
             * {
             *
             *  Debug.Log(s.name);
             *  Debug.Log(s.GetType());
             *  Type t = s.GetType();
             *  //Debug.Log(typeof(s));
             *  Debug.Log(t);
             *  Debug.Log("Members:");
             *  System.Reflection.MemberInfo[] memberInfo = t.GetMembers();
             *  foreach (System.Reflection.MemberInfo mInfo in memberInfo)
             *  {
             *      Debug.Log(mInfo.ToString());
             *  }
             */
            /*
             * if (s.GetClass() != null && s.GetClass().IsSubclassOf(typeof(Subscriber<Message>)))
             * {
             *
             * }
             */
            /*
             *  UnityEditor.MonoScript ms = (UnityEditor.MonoScript)s;
             *  //Subscriber <Message> msSub = (Subscriber<Message>)s;
             *
             *  Debug.Log("---Class:" + ms.GetClass());
             *
             *  UnityEngine.ScriptableObject newScript = (UnityEngine.ScriptableObject)ScriptableObject.CreateInstance(ms.GetClass());
             *
             *  Type t2 = ms.GetType();
             *  //Debug.Log(typeof(s));
             *  Debug.Log("Members:");
             *  System.Reflection.MemberInfo[] memberInfo2 = t2.GetMembers();
             *  foreach (System.Reflection.MemberInfo mInfo2 in memberInfo2)
             *  {
             *      Debug.Log(mInfo2.ToString());
             *  }
             *
             */
            //scripts.AddLast(ms.GetClass());
            //scripts.AddLast(msSub);

            //Debug.Log("---TOPIC OF SCRIPT:" + msSub.Topic);

            /*
             * Subscriber<Messages> ms = (Subscriber<Messages>)s;
             * Debug.Log(ms.GetClass());
             * ClockSubscriber cs = (ClockSubscriber)ms;
             * cs.T
             * //s.GetType ms; = (UnityEditor.MonoScript)s;
             *
             *
             * }
             */

            script      = GameObject.FindGameObjectWithTag("testCubeToolbox").GetComponent <ObjectCollectionNodes>();
            nodeManager = GameObject.Find("Rviz2AR_ToolBox").GetComponent <NodeManager>();

            //Get all the Nodes
            GetComponent <RosConnector>().RosSocket.CallService <rosapi.NodesRequest, rosapi.NodesResponse>("/rosapi/nodes", ServiceCallHandler, new rosapi.NodesRequest());
            //Get all the Topics
            GetComponent <RosConnector>().RosSocket.CallService <rosapi.TopicsRequest, rosapi.TopicsResponse>("/rosapi/topics", ServiceCallHandler, new rosapi.TopicsRequest());
            GetComponent <RosConnector>().RosSocket.CallService <rosapi.GetParamRequest, rosapi.GetParamResponse>("/rosapi/get_param", ServiceCallHandler, new rosapi.GetParamRequest("/rosdistro", "default"));

            //GetComponent<RosConnector>().RosSocket.CallService<rosapi.TopicTypeRequest, rosapi.TopicTypeResponse>("/rosapi/topic_type", TopicTypeServiceCallHandler, new rosapi.TopicTypeRequest("/joy"));

            //get tf2_msgs/FrameGraph Service
            //GetComponent<RosConnector>().RosSocket.CallService<rosapi.FrameGraphRequest, rosapi.FrameGraphResponse>("/tf2_msgs/FrameGraph", FrameGraphServiceCallHandler, new rosapi.FrameGraphRequest());

            //GetComponent<RosConnector>().RosSocket.CallService<rosapi.NodeDetailsRequest, rosapi.NodeDetailsResponse>("/rosapi/node_details", ServiceCallHandler, new rosapi.NodeDetailsRequest("/gazebo"));

            //Debug.Log("////////////////////////nodenames: " + nodenames.Length);


            //script.updateToolbox(nodenames);
            //wir erstellen nodes aus den Nodenamen, die wir uns geben lassen
            //nodeManager.generateNodes(nodenames);

            //nodeManager.generateNodes(topicnames);

            StartCoroutine(GenerateNodes());
        }