public Character Refresh(excel_refresh refreshExcel, Scene scn) { int index = Mathf.RandRange(0, refreshExcel.birthpoint.Length - 1); string birthPointName = refreshExcel.birthpoint[index]; MarkPoint markPoint = GetMarkPoint(scn.ScnID, birthPointName); if (markPoint == null) { return(null); } Vector3 targetPos = markPoint.position; Vector3 dir = new Vector3(Mathf.RandRange(-1.0f, 1.0f), 0.0f, Mathf.RandRange(-1.0f, 1.0f)); dir.Normalize(); float dist = Mathf.RandRange(0.0f, 1.0f) * refreshExcel.refreshDist; targetPos += (dist * dir); Vector3 hitPos = Vector3.zero; uint layer = NavigationSystem.GetLayer(markPoint.position); if (NavigationSystem.LineCast(markPoint.position, targetPos, layer, out hitPos)) { targetPos = hitPos; } float h = 0.0f; if (NavigationSystem.GetLayerHeight(targetPos, layer, out h)) { targetPos.y = h; } NPC npc = new NPC(); return(npc); }
/// <summary> /// エリアマップ描画 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void AreaMap_Draw_Area(Graphics g, ref CersioCtrl CersioCt, ref Brain BrainCtrl) { // 書き換えBMP(追加障害物)描画 LocPreSumpSystem LocSys = BrainCtrl.LocSys; // エリアマップ描画 //g.FillRectangle(Brushes.Black, 0, 0, picbox_AreaMap.Width, picbox_AreaMap.Height); g.DrawImage(LocSys.AreaOverlayBmp, 0, 0); // ターゲット描画 if (null != CersioCt) { int tgtPosX, tgtPosY; double dir = 0; tgtPosX = tgtPosY = 0; float olScale = (float)LocSys.AreaOverlayBmp.Width / (float)LocSys.AreaBmp.Width; BrainCtrl.RTS.getNowTarget(ref tgtPosX, ref tgtPosY); BrainCtrl.RTS.getNowTargetDir(ref dir); MarkPoint tgtMk = new MarkPoint(LocSys.worldMap.GetAreaX(tgtPosX), LocSys.worldMap.GetAreaY(tgtPosY), dir); DrawMaker(g, olScale, tgtMk, Brushes.GreenYellow, 8); // ターゲットまでのライン DrawMakerLine(g, olScale, new MarkPoint(LocSys.worldMap.GetAreaX(LocSys.R1.X), LocSys.worldMap.GetAreaY(LocSys.R1.Y), 0), tgtMk, Pens.Olive, 1); } }
private void makeMarks(int x, int y) { MarkPoint mpH = new MarkPoint(x, y, Position.HORIZONTAL); MarkPoint mpV = new MarkPoint(x, y, Position.VERTICAL); MarkPoint mpH1 = new MarkPoint(x + 1, y, Position.HORIZONTAL); MarkPoint mpV1 = new MarkPoint(x, y + 1, Position.VERTICAL); if (!marks.ContainsKey(mpH)) { //Mark mark = MonoBehaviour.Instantiate (markPrefab).GetComponent<Mark> (); //marks.Add (mpH, mark); } if (!marks.ContainsKey(mpV)) { //marks.Add (mpV, Instantiate(markPrefab).GetComponent<Mark>()); } if (!marks.ContainsKey(mpH1)) { //marks.Add (mpH1, Instantiate(markPrefab).GetComponent<Mark>()); } if (!marks.ContainsKey(mpV1)) { //marks.Add (mpV1, Instantiate(markPrefab).GetComponent<Mark>()); } }
void AddSegment(MarkPoint first, MarkPoint second) { int segmentIndex = (m_segmentCount % m_segmentArraySize) * 4; m_vertices[segmentIndex + 0] = first.posl; m_vertices[segmentIndex + 1] = first.posr; m_vertices[segmentIndex + 2] = second.posl; m_vertices[segmentIndex + 3] = second.posr; m_colors[segmentIndex + 0].a = first.intensity; m_colors[segmentIndex + 1].a = first.intensity; m_colors[segmentIndex + 2].a = second.intensity; m_colors[segmentIndex + 3].a = second.intensity; m_values[segmentIndex / 4] = new Vector2(first.intensity, second.intensity); if (m_segmentCount == 0) { Vector3 v = m_vertices[0]; for (int i = 4, c = m_vertices.Length; i < c; i++) { m_vertices[i] = v; } } m_segmentCount++; m_segmentsUpdated = true; }
public void LoadFrom(MyReader mr) { id = mr.LoadInt(); ShowShape.X = mr.LoadInt(); ShowShape.Y = mr.LoadInt(); ShowShape.Width = mr.LoadInt(); ShowShape.Height = mr.LoadInt(); ShowShape.Angle = mr.LoadDouble(); int mpc = mr.LoadInt(); int cpc = mr.LoadInt(); mr.LoadLineEnd(); for (int i = 0; i < mpc; i++) { MarkPoint mp = new MarkPoint(); mp.LoadFrom(mr); AddWin(mp); } for (int i = 0; i < cpc; i++) { WinType wt = mr.LoadType(); CheckWinBase cw = NewComponent(wt); cw.LoadFrom(mr); AddWin(cw); } }
public void AddMarkPoint(MarkPoint mp) { if (MarkPoints == null) { MarkPoints = new List <MarkPoint>(); } MarkPoints.Add(mp); }
public void AddMarkpoint(MarkPoint mp) { if (AllMarkPoints == null) { AllMarkPoints = new List <MarkPoint>(); } AllMarkPoints.Add(mp); }
private void DrawMakerLine(Graphics g, float fScale, MarkPoint robotA, MarkPoint robotB, Pen pen, int size) { var P1 = new PointF( (float)(robotA.X * fScale), (float)(robotA.Y * fScale)); var P2 = new PointF( (float)(robotB.X * fScale), (float)(robotB.Y * fScale)); g.DrawLine(pen, P1, P2); }
private void Awake() { Singleton(); _cardSystem = transform.GetComponent <Time_CardSystem>(); _markPoint = transform.GetComponent <MarkPoint>(); _createItemBox = GetComponent <ItemBox_Creating>(); DontDestoryGameObject = new GameObject { name = "DontDestoryGameOject" }.transform; GameObject.DontDestroyOnLoad(DontDestoryGameObject); }
//static int areaMapDrawCnt = 0; public void AreaMap_Draw_WorldMap(Graphics g, ref CersioCtrl CersioCt, ref Brain BrainCtrl) { LocPreSumpSystem LocSys = BrainCtrl.LocSys; // 全体マップ描画 float viewScale; g.FillRectangle(Brushes.Black, 0, 0, worldMapBmp.Width, worldMapBmp.Height); if (((float)LocSys.worldMap.WorldSize.w / (float)worldMapBmp.Width) < ((float)LocSys.worldMap.WorldSize.h / (float)worldMapBmp.Height)) { viewScale = (float)(1.0 / ((float)LocSys.worldMap.WorldSize.h / (float)worldMapBmp.Height)); } else { viewScale = (float)(1.0 / ((float)LocSys.worldMap.WorldSize.w / (float)worldMapBmp.Width)); } //g.ResetTransform(); //g.TranslateTransform(-ctrX, -ctrY, MatrixOrder.Append); //g.RotateTransform((float)layer.wAng, MatrixOrder.Append); //g.ScaleTransform(viewScale, viewScale, MatrixOrder.Append); if (null != worldMapBmp) { g.DrawImage(worldMapBmp, 0, 0); } //g.ResetTransform(); // 各マーカーの位置を描画 LocSys.DrawWorldMap(g, viewScale); // ターゲット描画 if (null != CersioCt) { int tgtPosX, tgtPosY; double dir = 0; tgtPosX = tgtPosY = 0; BrainCtrl.RTS.getNowTarget(ref tgtPosX, ref tgtPosY); BrainCtrl.RTS.getNowTargetDir(ref dir); MarkPoint tgtMk = new MarkPoint(tgtPosX, tgtPosY, dir + 180); DrawMaker(g, viewScale, tgtMk, Brushes.GreenYellow, 8); // ターゲットまでのライン DrawMakerLine(g, viewScale, LocSys.R1, tgtMk, Pens.Olive, 1); } }
public int CountHandPoints() { var Points = 0; foreach (var Card in Hand) { foreach (var MarkPoint in Enum.GetNames(typeof(ValuedCardValues))) { if (MarkPoint.ToString().Equals(Card.mark.ToString())) { Points += (int)Enum.Parse(typeof(ValuedCardValues), Card.mark.ToString()); } } } return(Points); }
public int AddPathPoint(Vector3 pos, float intensity, int lastIndex) { Vector3 normal = Vector3.up; if (!isActiveAndEnabled || m_markArraySize == 0) { return(-1); } intensity = Mathf.Clamp01(intensity); Vector3 newPos = pos + normal * groundOffset; if (lastIndex >= 0 && Vector3.Distance(newPos, m_markPoints[lastIndex % m_markArraySize].pos) < minDistance) { return(lastIndex); } MarkPoint current = m_markPoints[m_markCount % m_markArraySize]; current.pos = newPos; current.intensity = intensity; current.lastIndex = lastIndex; if (lastIndex >= 0 && lastIndex > m_markCount - m_markArraySize) { MarkPoint last = m_markPoints[lastIndex % m_markArraySize]; Vector3 dir = (current.pos - last.pos); Vector3 crossDir = Vector3.Cross(dir, normal).normalized; Vector3 widthDir = 0.5f * width * crossDir; current.posl = current.pos + widthDir; current.posr = current.pos - widthDir; if (last.lastIndex < 0) { last.posl = current.pos + widthDir; last.posr = current.pos - widthDir; } AddSegment(last, current); } m_markCount++; return(m_markCount - 1); }
/// <summary> /// マーカー描画 /// </summary> /// <param name="g"></param> /// <param name="fScale"></param> /// <param name="robot"></param> /// <param name="brush"></param> /// <param name="size"></param> static public void DrawMaker(Graphics g, float fScale, MarkPoint robot, Brush brush, int size) { double mkX = robot.X * fScale; double mkY = robot.Y * fScale; double mkDir = robot.Theta - 90.0; var P1 = new PointF( (float)(mkX + size * Math.Cos(mkDir * Math.PI / 180.0)), (float)(mkY + size * Math.Sin(mkDir * Math.PI / 180.0))); var P2 = new PointF( (float)(mkX + size * Math.Cos((mkDir - 150) * Math.PI / 180.0)), (float)(mkY + size * Math.Sin((mkDir - 150) * Math.PI / 180.0))); var P3 = new PointF( (float)(mkX + size * Math.Cos((mkDir + 150) * Math.PI / 180.0)), (float)(mkY + size * Math.Sin((mkDir + 150) * Math.PI / 180.0))); g.FillPolygon(brush, new PointF[] { P1, P2, P3 }); }
public MarkPoint GetMarkPoint(int scnID, string name) { List <MarkPoint> markPoints = null; if (!mScnMarkPoints.TryGetValue(scnID, out markPoints)) { return(null); } for (int i = 0; i < markPoints.Count; ++i) { MarkPoint pt = markPoints[i]; if (pt.name == name) { return(pt); } } return(null); }
void LoadScnMark(int scnID, string markPath) { if (string.IsNullOrEmpty(markPath)) { return; } List <MarkPoint> scnMarkPoints = null; if (!mScnMarkPoints.TryGetValue(scnID, out scnMarkPoints)) { scnMarkPoints = new List <MarkPoint>(); mScnMarkPoints.Add(scnID, scnMarkPoints); } string jsonText = string.Empty; using (FileStream fsRead = new FileStream(@"../Data/RefreshInfo/" + markPath + ".json", FileMode.Open)) { byte[] configDatas = new byte[fsRead.Length]; fsRead.Read(configDatas, 0, configDatas.Length); jsonText = System.Text.Encoding.UTF8.GetString(configDatas); fsRead.Close(); } JsonData json = JsonMapper.ToObject(jsonText); JsonData markPoints = json["MarkPoints"]; for (int i = 0; i < markPoints.Count; ++i) { JsonData markPoint = markPoints[i]; JsonData nameJson = markPoint["name"]; JsonData posJson = markPoint["Pos"]; JsonData dirJson = markPoint["Dir"]; MarkPoint pt = new MarkPoint(); pt.name = nameJson.AsString; pt.position = new Vector3(posJson[0].AsFloat, posJson[1].AsFloat, posJson[2].AsFloat); pt.direction = new Vector3(dirJson[0].AsFloat, dirJson[1].AsFloat, dirJson[2].AsFloat); scnMarkPoints.Add(pt); } }
/// <summary> /// マップイメージログ出力 /// </summary> /// <param name="BrainCtrl"></param> /// <returns></returns> public bool Output_ImageLog(ref Brain BrainCtrl) { try { // 軌跡ログ出力 if (!string.IsNullOrEmpty(saveLogFname)) { MarkPoint tgtMaker = null; // 次の目的地取得 { int tgtPosX = 0; int tgtPosY = 0; double dir = 0; BrainCtrl.RTS.getNowTarget(ref tgtPosX, ref tgtPosY); BrainCtrl.RTS.getNowTargetDir(ref dir); tgtMaker = new MarkPoint(tgtPosX, tgtPosY, dir); } { Bitmap bmp = BrainCtrl.LocSys.MakeMakerLogBmp(false, tgtMaker); if (null != bmp) { // 画像ファイル保存 string saveImageLogFname = Path.ChangeExtension(saveLogFname, "png"); bmp.Save(saveImageLogFname, System.Drawing.Imaging.ImageFormat.Png); } } } } catch (Exception ex) { MessageBox.Show(ex.Message + System.Environment.NewLine + ex.StackTrace); return(false); } return(true); }
public void LoadFrom(MyReader mr) { pcbName = mr.LoadString(); pcbWidth = mr.LoadInt(); pcbHeight = mr.LoadInt(); spareWidth = mr.LoadInt(); _pixelSize = mr.LoadDouble(); useMainBoardBarcode = mr.LoadBool(); useSubBoardBarcode = mr.LoadBool(); customer = mr.LoadString(); halftoneHeight = mr.LoadDouble(); int mpc = mr.LoadInt(); int sbc = mr.LoadInt(); int cpc = mr.LoadInt(); mr.LoadLineEnd(); for (int i = 0; i < mpc; i++) { MarkPoint mp = new MarkPoint(); mp.LoadFrom(mr); AddWin(mp); } for (int i = 0; i < sbc; i++) { SubBoard sb = new SubBoard(); sb.LoadFrom(mr); AddWin(sb); } for (int i = 0; i < cpc; i++) { WinType wt = mr.LoadType(); CheckWinBase cw = NewComponent(wt); cw.LoadFrom(mr); AddWin(cw); } }
void OnEnable() { transform.position = Vector3.zero; transform.rotation = Quaternion.identity; MeshFilter meshFilter = gameObject.GetComponent <MeshFilter>(); if (meshFilter == null) { meshFilter = gameObject.AddComponent <MeshFilter>(); } MeshRenderer meshRenderer = gameObject.GetComponent <MeshRenderer>(); if (meshRenderer == null) { meshRenderer = gameObject.AddComponent <MeshRenderer>(); meshRenderer.shadowCastingMode = ShadowCastingMode.Off; meshRenderer.material = material; } if (maxMarks < 10) { maxMarks = 10; } m_markPoints = new MarkPoint[maxMarks * 2]; for (int i = 0, c = m_markPoints.Length; i < c; i++) { m_markPoints[i] = new MarkPoint(); } m_markCount = 0; m_markArraySize = m_markPoints.Length; m_vertices = new Vector3[maxMarks * 4]; m_colors = new Color[maxMarks * 4]; m_uvs = new Vector2[maxMarks * 4]; m_triangles = new int[maxMarks * 6]; m_values = new Vector2[maxMarks]; m_segmentCount = 0; m_segmentArraySize = maxMarks; m_segmentsUpdated = false; // Elements that will be invariant for (int i = 0; i < m_segmentArraySize; i++) { m_uvs[i * 4 + 0] = new Vector2(0, textureOffsetY); m_uvs[i * 4 + 1] = new Vector2(1, textureOffsetY); m_uvs[i * 4 + 2] = new Vector2(0, 1 - textureOffsetY); m_uvs[i * 4 + 3] = new Vector2(1, 1 - textureOffsetY); m_triangles[i * 6 + 0] = i * 4 + 0; m_triangles[i * 6 + 2] = i * 4 + 1; m_triangles[i * 6 + 1] = i * 4 + 2; m_triangles[i * 6 + 3] = i * 4 + 2; m_triangles[i * 6 + 5] = i * 4 + 1; m_triangles[i * 6 + 4] = i * 4 + 3; } m_mesh = new Mesh(); m_mesh.name = "Path_Mesh"; m_mesh.MarkDynamic(); m_mesh.vertices = m_vertices; m_mesh.colors = m_colors; m_mesh.triangles = m_triangles; m_mesh.uv = m_uvs; m_mesh.RecalculateBounds(); meshFilter.mesh = m_mesh; }
void AddMarkPoint() { MarkPoint mp = new MarkPoint(); markPoints.Push(mp); mp.FileOffset = stream.Position; stream.Write(new byte[] { 0, 0, 0, 0 }, 0, 4); }
protected internal void MarkSet() { Manager mg = GameObject.Find("Manager").GetComponent <Manager> (); coordinate = mg.sy_Mark.coordinate; markGroup = new GameObject("Mark"); GameObject target = new GameObject("Target"); GameObject setting = new GameObject("Setting"); target.transform.parent = markGroup.transform; setting.transform.parent = markGroup.transform; if (coordinate != null) { for (int i = 0; i < coordinate.Length; i++) { GameObject table = new GameObject(mg.sy_Mark.table_name [i]); table.transform.parent = setting.transform; GameObject tableTarget = new GameObject(mg.sy_Mark.table_name [i]); tableTarget.transform.parent = target.transform; for (int k = 0; k < coordinate[i].Length; k++) { string objName = mg.sy_Mark.field_name [i] [k]; GameObject mark = new GameObject(objName); mark.transform.parent = tableTarget.transform; GameObject markImg = new GameObject(objName); markImg.transform.parent = table.transform; markImg.transform.localScale = Vector3.zero; MarkPoint mp = (MarkPoint)markImg.AddComponent <MarkPoint> (); mp.mg = GameObject.Find("Manager").GetComponent <Manager> (); mp.markCoordinate = coordinate [i] [k]; mp.target = mark.transform; mp.offset = Vector3.zero; mp.hoverMouseSprite = Resources.Load("UI/" + mg.sy_Mark.field_contents [i] [k] [3].ToString()) as Texture2D; mp.activeSprite = Resources.Load("UI/" + mg.sy_Mark.field_contents [i] [k] [4]) as Texture2D; GUITexture _markImg = (GUITexture)markImg.AddComponent(typeof(GUITexture)); _markImg.texture = Resources.Load("UI/" + mg.sy_Mark.field_contents [i] [k] [2].ToString()) as Texture2D; _markImg.pixelInset = new Rect(float.Parse(mg.sy_Mark.field_contents [i] [k] [9]), float.Parse(mg.sy_Mark.field_contents [i] [k] [10]), float.Parse(mg.sy_Mark.field_contents [i] [k] [11]), float.Parse(mg.sy_Mark.field_contents [i] [k] [12])); _markImg.color = new Color(float.Parse(mg.sy_Mark.field_contents [i] [k] [5]) / 255, float.Parse(mg.sy_Mark.field_contents [i] [k] [6]) / 255, float.Parse(mg.sy_Mark.field_contents [i] [k] [7]) / 255, float.Parse(mg.sy_Mark.field_contents [i] [k] [8]) / 255); if (mg.sy_Mark.field_contents [i] [k] [13] == "true") { GUIText _text = markImg.AddComponent(typeof(GUIText)) as GUIText; _text.text = objName; _text.pixelOffset = new Vector2(float.Parse(mg.sy_Mark.field_contents [i] [k] [14]), float.Parse(mg.sy_Mark.field_contents [i] [k] [15])); _text.fontSize = int.Parse(mg.sy_Mark.field_contents [i] [k] [16]); # if OnColor _text.color = new Color(float.Parse(mg.sy_Mark.field_contents [i] [k] [17]) / 255, float.Parse(mg.sy_Mark.field_contents [i] [k] [18]) / 255, float.Parse(mg.sy_Mark.field_contents [i] [k] [19]) / 255, float.Parse(mg.sy_Mark.field_contents [i] [k] [20]) / 255); #endif string tex = System.Enum.GetName(typeof(TextAlignment), int.Parse(mg.sy_Mark.field_contents [i] [k] [21])); _text.alignment = (TextAlignment)System.Enum.Parse(typeof(TextAlignment), tex); } } } }
/// <summary> /// 数据项初始化 /// </summary> /// <param name="option"></param> private void OptionSeries(Option option) { SeriesRectangle series = new SeriesRectangle { Name = "最高温度", Type = "line" }; MarkPoint mp = new MarkPoint(); MarkPointDataThree markPointData = new MarkPointDataThree { Type = "max", Name = "最大" }; MarkPointDataThree markPointDataT = new MarkPointDataThree { Type = "min", Name = "最小的值" }; mp.Data = new MarkPointData[] { markPointData, markPointDataT }; series.MarkPoint = mp; MarkLine ml = new MarkLine { //Data = new MarkLineData[] //{ // new MarkLineDataThree {Name = "最小", Type = "min"}, // new MarkLineDataThree {Name = "最大", Type = "max"}, // new MarkLineDataThree {Name = "平均", Type = "average"}, //}, DataGroup = new MarkLineData[, ] { { new MarkLineDataThree { Name = "最小", Type = "min" }, new MarkLineDataThree { Name = "最大", Type = "max" }, } }, }; series.MarkLine = ml; series.Data = new SeriesData[] { new SeriesDataOne { Value = "12" }, new SeriesDataOne { Value = "11" }, new SeriesDataOne { Value = "13" }, new SeriesDataOne { Value = "14" }, new SeriesDataOne { Value = "12" }, new SeriesDataOne { Value = "18" }, new SeriesDataOne { Value = "19" }, new SeriesDataOne { Value = "22" }, }; option.Series = new Series[] { series }; }
// ----------------------------------------------------------------- // マップスクロール private void picbox_AreaMap_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left /*&& selAreaMapMode == MAP_MODE.AREA_MAP*/) { //どの修飾子キー(Shift、Ctrl、およびAlt)が押されているか /* * if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift) * Console.WriteLine("Shiftキーが押されています。"); * if ((Control.ModifierKeys & Keys.Control) == Keys.Control) * Console.WriteLine("Ctrlキーが押されています。"); * if ((Control.ModifierKeys & Keys.Alt) == Keys.Alt) * Console.WriteLine("Altキーが押されています。"); */ if (checkBoxCheckPointModifi.Checked) { LocationSystem LocSys = BrainCtrl.LocSys; DrawMarkPoint drawCenter = new DrawMarkPoint(LocSys.R1, LocSys); // センターを左下にずらす Width x 0.1, Height x 0.1 double viewCenterX = formDraw.GetMapWndowCenterX(picbox_AreaMap); // (picbox_AreaMap.Width * 0.5) - (picbox_AreaMap.Width * 0.1); double viewCenterY = formDraw.GetMapWndowCenterY(picbox_AreaMap); //(picbox_AreaMap.Height * 0.5) + (picbox_AreaMap.Height * 0.1); int msPosX = e.X - (int)((-drawCenter.x + viewCenterX) - viewScrollX); int msPosY = e.Y - (int)((-drawCenter.y + viewCenterY) - viewScrollY); MarkPoint mouseRosPos = new MarkPoint(new DrawMarkPoint(msPosX, msPosY, 0.0), LocSys); if (radioButtonPointMove.Checked && (Control.ModifierKeys & Keys.Control) == Keys.Control) { // 移動チェックポイント選択 selCpIndex = LocSys.GetCheckPointIndex(mouseRosPos.x, mouseRosPos.y); if (selCpIndex != -1) { // 移動チェックポイント取得 moveCpPos = LocSys.RTS.GetCheckPoint(selCpIndex); } else { // スクロール bMouseMove = true; } } else if (radioButtonPointAdd.Checked) { // チェックポイント新規追加 Vector3 baseCpPos = new Vector3(mouseRosPos.x, mouseRosPos.y, 0.0); LocSys.RTS.AddCheckPoint((int)numericUD_CheckPoint.Value, baseCpPos); } else if (radioButtonPointDelete.Checked) { // チェックポイント削除 Vector3 baseCpPos = new Vector3(mouseRosPos.x, mouseRosPos.y, 0.0); selCpIndex = LocSys.GetCheckPointIndex(mouseRosPos.x, mouseRosPos.y); if (selCpIndex != -1) { LocSys.RTS.RemoveCheckPoint(selCpIndex); } selCpIndex = -1; } else { // スクロール bMouseMove = true; } } else { // スクロール bMouseMove = true; } MouseStX = e.X; MouseStY = e.Y; viewMoveAddX = 0; viewMoveAddY = 0; } }
private void picbox_AreaMap_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { // if (bMouseMove) { viewMoveAddX = (MouseStX - e.X); viewMoveAddY = (MouseStY - e.Y); } else if (selCpIndex != -1) { LocationSystem LocSys = BrainCtrl.LocSys; int msPosX = (e.X - MouseStX); int msPosY = (e.Y - MouseStY); MarkPoint _checkPos = new MarkPoint(new DrawMarkPoint(msPosX, msPosY, 0.0), LocSys); Vector3 baseCpPos = new Vector3((moveCpPos.x + _checkPos.x) , (moveCpPos.y + _checkPos.y) , 0.0); Vector3 nowCpPos = LocSys.RTS.GetCheckPoint(selCpIndex); if (nowCpPos != baseCpPos) { LocSys.RTS.SetCheckPoint(selCpIndex, baseCpPos); } } } else if (e.Button == MouseButtons.Right) { } else { if (checkBoxCheckPointModifi.Checked) { //if (radioButtonPointMove.Checked && (Control.ModifierKeys & Keys.Control) == Keys.Control) { LocationSystem LocSys = BrainCtrl.LocSys; DrawMarkPoint drawCenter = new DrawMarkPoint(LocSys.R1, LocSys); // センターを左下にずらす Width x 0.1, Height x 0.1 double viewCenterX = (picbox_AreaMap.Width * 0.5) - (picbox_AreaMap.Width * 0.1); double viewCenterY = (picbox_AreaMap.Height * 0.5) + (picbox_AreaMap.Height * 0.1); int msPosX = e.X - (int)((-drawCenter.x + viewCenterX) - viewScrollX); int msPosY = e.Y - (int)((-drawCenter.y + viewCenterY) - viewScrollY); MarkPoint mouseRosPos = new MarkPoint(new DrawMarkPoint(msPosX, msPosY, 0.0), LocSys); { // 移動チェックポイント選択 selCpIndex = LocSys.GetCheckPointIndex(mouseRosPos.x, mouseRosPos.y); if (selCpIndex != -1) { // 移動チェックポイント取得 moveCpPos = LocSys.RTS.GetCheckPoint(selCpIndex); } } } } } }
public SeriesItem() { data = new List <double>(); markPoint = new MarkPoint(); markLine = new MarkLine(); }
void DoPatrol() { if (mNPC.mRefreshList == null) { return; } int npcAIID = mNPC.mRefreshList.npcAI; excel_npc_ai npcAI = excel_npc_ai.Find(npcAIID); if (npcAI == null) { return; } if (NormalBehaviourPhase.PatrolInterval == mPhase) { mIntervalTime -= Time.DeltaTime; if (mIntervalTime > 0.0f) { return; } PatrolType patrolType = (PatrolType)npcAI.patrolType; if (patrolType == PatrolType.Scope) { if (mNPC.mRefreshList.birthpoint.Length <= 0) { return; } string birthpoint = mNPC.mRefreshList.birthpoint[0]; MarkPoint markPoint = RefreshSystem.Instance.GetMarkPoint(mNPC.mScene.ScnID, birthpoint); if (markPoint == null) { return; } Vector3 targetPos = markPoint.position; Vector3 dir = new Vector3(Mathf.RandRange(-1.0f, 1.0f), 0.0f, Mathf.RandRange(-1.0f, 1.0f)); dir.Normalize(); float dist = Mathf.RandRange(0.0f, 1.0f) * npcAI.patrolRadius; targetPos += (dist * dir); Vector3 hitPos = Vector3.zero; if (NavigationSystem.LineCast(mNPC.Position, targetPos, mNPC.mNavLayer, out hitPos)) { targetPos = hitPos; } mPath = new Vector3[1]; mPath[0] = targetPos; mPathIndex = 0; mPhase = NormalBehaviourPhase.Patrol; } } else if (NormalBehaviourPhase.Patrol == mPhase) { if (mPath == null || mPathIndex >= mPath.Length) { mIntervalTime = Mathf.RandRange(npcAI.patrolMinInterval, npcAI.patrolMaxInterval); mPhase = NormalBehaviourPhase.PatrolInterval; return; } Vector3 targetPos = mPath[mPathIndex]; if (!mNPC.IsSearchMoving()) { mNPC.SearchMove(targetPos); } float dist = (targetPos - mNPC.Position).Length(); if (dist <= 0.3f) { ++mPathIndex; } } }
public override void OnInspectorGUI() { ScnMarkManger scnMarkMgr = target as ScnMarkManger; if (GUILayout.Button("生成JSon")) { JsonData root = new JsonData(); JsonData markPoints = new JsonData(); root["MarkPoints"] = markPoints; MarkPoint[] pts = scnMarkMgr.GetComponentsInChildren <MarkPoint>(); for (int i = 0; i < pts.Length; ++i) { MarkPoint pt = pts[i]; JsonData markPoint = new JsonData(); markPoint["name"] = new JsonData(pt.name); JsonData position = new JsonData(); position.Add(FloatToDouble(pt.transform.position.x)); position.Add(FloatToDouble(pt.transform.position.y)); position.Add(FloatToDouble(pt.transform.position.z)); markPoint["Pos"] = position; JsonData direction = new JsonData(); direction.Add(FloatToDouble(pt.transform.forward.x)); direction.Add(FloatToDouble(pt.transform.forward.y)); direction.Add(FloatToDouble(pt.transform.forward.z)); markPoint["Dir"] = direction; markPoints.Add(markPoint); } string jsonText = root.ToJson(); string path = Application.dataPath; int slash1 = path.LastIndexOf('/'); int slash2 = path.LastIndexOf('\\'); path = path.Substring(0, Mathf.Max(slash1, slash2)); path += "/Data"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } path += "/"; path += UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene().name; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } path += "/refreshInfo.json"; using (FileStream file = new FileStream(path, FileMode.CreateNew)) { byte[] data = System.Text.Encoding.UTF8.GetBytes(jsonText); file.Write(data, 0, data.Length); file.Flush(); file.Close(); } Debug.LogError(jsonText); } }