コード例 #1
0
        private void Add(string displayname)
        {
            Debug.Log("[Thry] [Player-List] Add Player: " + displayname);
            GameObject playerButton = VRCInstantiate(playerPrefab);

            playerButton.transform.position   = Vector3.zero;
            playerButton.transform.localScale = Vector3.one;
            playerButton.name = displayname;
            ((Text)playerButton.GetComponentInChildren(typeof(Text))).text = displayname;

            int addAtIndex = list.childCount;

            for (int i = list.childCount - 1; i >= 0; i--)
            {
                if (System.String.Compare(list.GetChild(i).name, displayname, System.StringComparison.CurrentCultureIgnoreCase) == 1)
                {
                    addAtIndex = i;
                }
            }
            playerButton.transform.SetParent(list, false);
            playerButton.transform.SetSiblingIndex(addAtIndex);
            playerButton.SetActive(true);

            foreach (Component c in playerButton.GetComponentsInChildren(typeof(UdonBehaviour), true))
            {
                if (c.gameObject != playerButton)
                {
                    c.name = displayname;
                }
                UdonBehaviour u = (UdonBehaviour)c;
                if (u.GetProgramVariableType("collapseAfterInstanciate") == typeof(bool) && (bool)u.GetProgramVariable("collapseAfterInstanciate") == true)
                {
                    ((GameObject)u.GetProgramVariable("content")).SetActive(false);
                }
            }
        }
コード例 #2
0
        private void Init()
        {
            //==>Actions
            //Sort udon behaviours
            int floatB = 0; int intB = 0; int boolB = 0; int eventB = 0;

            for (int i = 0; i < udonBehaviours.Length; i++)
            {
                if (Utilities.IsValid(udonBehaviours[i]))
                {
                    UdonBehaviour u = (UdonBehaviour)udonBehaviours[i].GetComponent(typeof(UdonBehaviour));
                    if (Utilities.IsValid(u))
                    {
                        if (i < udonEventNames.Length && udonEventNames[i] != null && udonEventNames[i].Length > 0)
                        {
                            eventB++;
                        }
                        if (i < udonValueNames.Length && udonValueNames[i] != null && udonValueNames[i].Length > 0)
                        {
                            if (u.GetProgramVariableType(udonValueNames[i]) == typeof(float))
                            {
                                floatB++;
                            }
                            if (u.GetProgramVariableType(udonValueNames[i]) == typeof(int))
                            {
                                intB++;
                            }
                            if (u.GetProgramVariableType(udonValueNames[i]) == typeof(bool))
                            {
                                boolB++;
                            }
                        }
                    }
                }
            }
            udon_bool_Behvaiours  = new GameObject[boolB]; udon_bool_Names = new string[boolB];
            udon_float_Behvaiours = new GameObject[floatB]; udon_float_Names = new string[floatB];
            udon_int_Behvaiours   = new GameObject[intB]; udon_int_Names = new string[intB];
            udon_event_Behvaiours = new GameObject[eventB]; udon_event_Names = new string[eventB];
            floatB = intB = boolB = eventB = 0;
            for (int i = 0; i < udonBehaviours.Length; i++)
            {
                if (Utilities.IsValid(udonBehaviours[i]))
                {
                    UdonBehaviour u = (UdonBehaviour)udonBehaviours[i].GetComponent(typeof(UdonBehaviour));
                    if (Utilities.IsValid(u))
                    {
                        if (i < udonEventNames.Length && udonEventNames[i] != null && udonEventNames[i].Length > 0)
                        {
                            udon_event_Behvaiours[eventB] = udonBehaviours[i];
                            udon_event_Names[eventB++]    = udonEventNames[i];
                        }
                        if (i < udonValueNames.Length && udonValueNames[i] != null && udonValueNames[i].Length > 0)
                        {
                            if (u.GetProgramVariableType(udonValueNames[i]) == typeof(float))
                            {
                                udon_float_Behvaiours[floatB] = udonBehaviours[i];
                                udon_float_Names[floatB++]    = udonValueNames[i];
                            }
                            if (u.GetProgramVariableType(udonValueNames[i]) == typeof(int))
                            {
                                udon_int_Behvaiours[intB] = udonBehaviours[i];
                                udon_int_Names[intB++]    = udonValueNames[i];
                            }
                            if (u.GetProgramVariableType(udonValueNames[i]) == typeof(bool))
                            {
                                udon_bool_Behvaiours[eventB] = udonBehaviours[i];
                                udon_bool_Names[eventB++]    = udonValueNames[i];
                            }
                        }
                    }
                }
            }

            //==>Requirements
            //Check Autherized name list
            string localName = Networking.LocalPlayer.displayName;

            foreach (string n in autherizedPlayerDisplayNames)
            {
                if (localName == n)
                {
                    isAutherizedPlayer = true;
                }
            }
            if (autherizedPlayerDisplayNames.Length == 0)
            {
                isAutherizedPlayer = true;
            }

            UpdateAllAdapterValues();

            if (Networking.IsOwner(gameObject))
            {
                Serialize();
            }

            //Update all reference values
            _UpdateValues();

            hasStartNotRun = false;
        }