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); } } }
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; }