protected virtual void OnTrackingFound() { // //如果是第一次发现该对象并且该对象已经激活,则进行一些操作,让屏幕中心的对象消失 // if (b_firstFound&&gameObject.activeSelf) // { // //取消当前场景中共享数据类的中所有对象的激活 // CancelActivationAllGameObjects(currentSenceDataShare.CurrentItemgGameObjects); // //将第一次发现该对象设置为false // b_firstFound = false; // } var rendererComponents = GetComponentsInChildren <Renderer>(true); var colliderComponents = GetComponentsInChildren <Collider>(true); var canvasComponents = 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; } // if (null != currentSenceDataShare)//保证共享数据类被初始化 // { // //取得当前对象名称放入共享数据类中的相应位置 // currentSenceDataShare.ActiveModel = gameObject.name; // } #region 进行拼图处理 //获得当前激活(选定)的游戏对象名称 string name = currentSenceDataShare.GetNameOfActiveItemGameObject(); if (null == name)//如果当前不存在选中对象 { //则拼图失败 return; } Debug.Log("要拼接的物品名称" + name); //获得当前激活(选定)的游戏对象对应的拼图编号 int codeOfPuzzle = ConfigureClass.puzzleStep[name]; //对比编号 if (_currentCodeOfPuzzle == codeOfPuzzle)//编号满足,则拼接成功,拼图成功 { //加载新的拼图结果 GameObject tempGameObject = LoadUtils.LoadPrefabFromResources(ConfigureClass.stepPath[currentSceneName] + _currentCodeOfPuzzle); Debug.Log("要实例化的对象" + ConfigureClass.stepPath[currentSceneName] + _currentCodeOfPuzzle); //实例化拼图结果 tempGameObject = Instantiate(tempGameObject); //持有新拼图结果的引用,并且删除以前的拼图结果 if (null != puzzleResult) { //删除以前的拼图结果 Destroy(puzzleResult); } //持有新拼图结果的引用 puzzleResult = tempGameObject; //引用传给公共变量 currentSenceDataShare.currentPuzzleResult = puzzleResult; Debug.Log("拼图" + _currentCodeOfPuzzle + "成功"); //拼图编号增加1 _currentCodeOfPuzzle++; //取消当前选中对象 destoryItem.RemoveItemChoicedFromItemBar(); //激活该对象对应的ImageTarget destoryItem.ActiveChoicedImageTarget(); #region 拼图完成处理 if ((_currentCodeOfPuzzle - 1) == _endCodeOfPuzzle) { //开启游戏结束界面 GameOverInterface.SetActive(true); //显示游戏结果 GameOverScript.ShowGameResult(); Debug.Log("拼图完成"); } #endregion } else//编号不一致,拼图失败 { //TODO:拼图失败操作 Debug.Log("拼图" + _currentCodeOfPuzzle + "失败"); } #endregion }