private void DisplayBuilding(BuildingDisplayAttribute attr, Transform targetBuildingModal, Transform imageTarget) { if (!targetBuildingModal.gameObject.activeInHierarchy) { targetBuildingModal.gameObject.SetActive(true); targetBuildingModal.SetParent(imageTarget); targetBuildingModal.localPosition = attr.InitLocalPosition; targetBuildingModal.localRotation = attr.InitLocalRotation; targetBuildingModal.localScale = attr.InitLocalScale; var rendererComponents = targetBuildingModal.GetComponentsInChildren <Renderer>(true); var colliderComponents = targetBuildingModal.GetComponentsInChildren <Collider>(true); var canvasComponents = targetBuildingModal.GetComponentsInChildren <Canvas>(true); // Enable rendering: foreach (var component in rendererComponents) { component.enabled = true; } // Enable colliders: foreach (var component in colliderComponents) { component.enabled = true; } // Enable canvas': foreach (var component in canvasComponents) { component.enabled = true; } } }
private int targetIndex = -1; //当前正在显示的建筑槽下标 public void OnTrackableFound(Transform trans, int index) { trans_imageTarget = trans; targetIndex = index; BuildingList.Instance.LoadBuildingAsync(index, new System.Action(delegate { targetBuilding = BuildingList.Instance.GetCurrentBuildingBuilding(); BuildingDisplayAttribute attr = targetBuilding.GetDisplayAttr(); // 获取建筑显示参数 trans_targetBuilding = targetBuilding.GetBuildingObject(); // 获取建筑模型 DisplayBuilding(attr, trans_targetBuilding, trans_imageTarget); // 显示建筑模型 UICenter.Instance.MapToggleButtonAppear(); // 显示小地图[显示/隐藏]按钮 UICenter.Instance.NaviButtonAppear(); // 显示导航按钮 UICenter.Instance.MusicPanelAppear(); // 显示播放器按钮 MusicPlayer.Insatance.SetAudioClip(targetBuilding.mIntroduceClip); // 设置音乐 })); //BuildingList.Instance.LoadBuilding (index); // BuildingDisplayAttribute attr = targetBuilding.GetDisplayAttr (); // 获取建筑显示参数 // trans_targetBuilding = targetBuilding.GetBuildingObject (); // 获取建筑模型 // DisplayBuilding(attr,trans_targetBuilding,trans_imageTarget); // 显示建筑模型 // UICenter.Instance.MapToggleButtonAppear (); // 显示小地图[显示/隐藏]按钮 // UICenter.Instance.NaviButtonAppear(); // 显示导航按钮 // UICenter.Instance.MusicPanelAppear(); // 显示播放器按钮 // MusicPlayer.Insatance.SetAudioClip(targetBuilding.mIntroduceClip); // 设置音乐 }
public void OnChangeDisplayBuilding(int index) { if (trans_imageTarget != null && targetBuilding != null) { trans_targetBuilding.SetParent(targetBuilding.transform); trans_targetBuilding.gameObject.SetActive(false); BuildingList.Instance.ReleaseObject(); BuildingList.Instance.LoadBuildingAsync(index, new System.Action(delegate { MusicPlayer.Insatance.ClearAudioClip(); Building newBuilding = BuildingList.Instance.GetCurrentBuildingBuilding(); if (newBuilding) { Transform newBuildingModal = newBuilding.GetBuildingObject(); BuildingDisplayAttribute newAttr = newBuilding.GetDisplayAttr(); targetBuilding = newBuilding; trans_targetBuilding = newBuildingModal; DisplayBuilding(newAttr, trans_targetBuilding, trans_imageTarget); MusicPlayer.Insatance.SetAudioClip(targetBuilding.mIntroduceClip); UICenter.Instance.ResetMusicButtonState(); } else { Debug.LogError("Here is building on index :" + index); } })); //BuildingList.Instance.LoadBuilding (index); // MusicPlayer.Insatance.ClearAudioClip (); // Building newBuilding = BuildingList.Instance.GetCurrentBuildingBuilding (); // if (newBuilding) { // Transform newBuildingModal = newBuilding.GetBuildingObject (); // BuildingDisplayAttribute newAttr = newBuilding.GetDisplayAttr (); // targetBuilding = newBuilding; // trans_targetBuilding = newBuildingModal; // DisplayBuilding (newAttr, trans_targetBuilding, trans_imageTarget); // MusicPlayer.Insatance.SetAudioClip (targetBuilding.mIntroduceClip); // UICenter.Instance.ResetMusicButtonState (); // } else { // Debug.LogError ("Here is building on index :" + index); // } } }
public void Initialize() { Transform building = transform.GetChild(0); displayAttr = new BuildingDisplayAttribute(); // Debug.Log (building.name); if (building) { // Debug.Log (building.name); displayAttr.InitLocalPosition = building.localPosition; // Debug.Log (building.name); displayAttr.InitLocalRotation = building.localRotation; // Debug.Log (building.name); displayAttr.InitLocalScale = building.localScale; mBuilding = building; building.gameObject.SetActive(false); } else { Debug.LogError(this.gameObject.name + " has no child"); } }