private void MoveMian(GameObject go, Vector2 delta) { Vector3 vec = Camera.main.ScreenToWorldPoint(delta); CameraRemotionConfigInfo camInfo = ConfigReader.GetCameraInfo((int)GameUserModel.Instance.GameMapID); if (camInfo != null) { Vector3 v1 = new Vector3(GameMethod.GetMainCamera.transform.position.x - (delta.x / camInfo.mMovementSpeed), GameMethod.GetMainCamera.transform.position.y, GameMethod.GetMainCamera.transform.position.z - (delta.y / camInfo.mMovementSpeed)); if (v1.x < camInfo.mLeftEdge.x) { v1.x = camInfo.mLeftEdge.x; } if (v1.x > camInfo.mRightEdge.x) { v1.x = camInfo.mRightEdge.x; } if (v1.z < camInfo.mBottomEdge.z) { v1.z = camInfo.mBottomEdge.z; } if (v1.z > camInfo.mTopEdge.z) { v1.z = camInfo.mTopEdge.z; } GameMethod.GetMainCamera.transform.position = v1; GameMethod.GetMainCamera.RefreshFrustumPlanes(); } }
public ReadMoveCameraConfig(string xmlFilePath) { ResourceItem xmlfileUnit = ResourcesManager.Instance.loadImmediate(xmlFilePath, ResourceType.ASSET); TextAsset xmlfile = xmlfileUnit.Asset as TextAsset; if (!xmlfile) { Debug.LogError(" error infos: 没有找到指定的xml文件:" + xmlFilePath); } xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlfile.text); XmlNodeList infoNodeList = xmlDoc.SelectSingleNode("CameraRemotion ").ChildNodes; for (int i = 0; i < infoNodeList.Count; i++) //(XmlNode xNode in infoNodeList) { if ((infoNodeList[i] as XmlElement).GetAttributeNode("un32MapID") == null) { continue; } string tpName = (infoNodeList[i] as XmlElement).GetAttributeNode("un32MapID").InnerText; CameraRemotionConfigInfo cameraInfo = new CameraRemotionConfigInfo(); cameraInfo.un32MapID = Convert.ToInt32(tpName); //NpcSelectInfo.NpcId = Convert.ToInt32(typeName); foreach (XmlElement xEle in infoNodeList[i].ChildNodes) { #region 搜索 switch (xEle.Name) { case "LeftEdge": cameraInfo.mLeftEdge = GameMethod.ResolveToVector3(xEle.InnerText); break; case "RightEdge": cameraInfo.mRightEdge = GameMethod.ResolveToVector3(xEle.InnerText); break; case "TopEdge": cameraInfo.mTopEdge = GameMethod.ResolveToVector3(xEle.InnerText); break; case "BottomEdge": cameraInfo.mBottomEdge = GameMethod.ResolveToVector3(xEle.InnerText); break; case "MovementSpeed": cameraInfo.mMovementSpeed = Convert.ToInt32(xEle.InnerText); break; } #endregion } ConfigReader.cameraXmlInfoDict.Add(Convert.ToInt32(tpName), cameraInfo); } }