private void LocatePlaces() { if (!Directory.Exists(triviasPath)) { Debug.Log("Cannot locate trivias."); return; } string[] triviaPaths = Directory.GetFiles(triviasPath, "*.asset"); foreach (string triviaPath in triviaPaths) { PlaceTrivia trivia = AssetDatabase.LoadAssetAtPath <PlaceTrivia>(triviaPath); if (trivia == null) { Debug.Log("Failed to load " + triviaPath); continue; } if (!LocatePlace(trivia)) { Debug.Log("Failed to locate place for " + trivia.name); } } }
private bool LocatePlace(PlaceTrivia trivia) { if (trivia == null) { return(false); } string filter = "\"" + trivia.name.Replace(" Trivia", "") + "\" t: Place"; string[] GUIDResult = AssetDatabase.FindAssets(filter); if (GUIDResult == null || GUIDResult.Length == 0) { Debug.Log("Could not find " + filter); return(false); } string path = AssetDatabase.GUIDToAssetPath(GUIDResult[0]); Place place = AssetDatabase.LoadAssetAtPath <Place>(path); if (place == null) { Debug.Log("Failed : " + path); return(false); } return(SetTrivia(place, trivia)); }
private void CreateBuildingItem(Place building) { if (building == null || itemPrefab == null || listContainer == null) { return; } PlaceTrivia buildingTrivia = building.trivia; trivias.Add(new BuildingTrivia(building.displayedName, buildingTrivia)); GameObject buildingItem = Instantiate(itemPrefab, listContainer) as GameObject; buildingItem.name = building.displayedName; Text nameText = buildingItem.GetComponent <Text>(); if (nameText != null) { nameText.text = building.displayedName; } Button button = buildingItem.GetComponent <Button>(); if (button != null) { button.onClick.AddListener(() => SelectTrivia(buildingItem.transform.GetSiblingIndex())); } }
private bool SetTrivia(Place place, PlaceTrivia trivia) { if (place == null || trivia == null) { return(false); } SerializedObject serializedObject = new SerializedObject(place); SerializedProperty triviaProperty = serializedObject.FindProperty("m_trivia"); triviaProperty.objectReferenceValue = trivia as Object; serializedObject.ApplyModifiedPropertiesWithoutUndo(); return(true); }
public BuildingTrivia(string name, PlaceTrivia trivia) { m_name = name; m_trivia = trivia; }