/// <summary> /// 前のアンカーとの角度と位置をいい感じにする /// </summary> /// <param name="prev">一つ手前のアンカー</param> /// <returns></returns> public void AdjustPrevAnkerAngle(Anker prev) { //!< 見る地点を指定する Vector3 target = AnkerPos + (AnkerPos - prev.NextHandlePos); transform.LookAt(target, Vector3.up); }
/// <summary> /// 直線になるように2点目のアンカーを調整する(2点の状態のみ作動) /// </summary> /// <param name="prev">一つ手前のアンカー</param> /// <returns></returns> public void AdjustSecondAnkerAngle(Anker prev) { //!< 見る地点を指定する Vector3 target = AnkerPos + (AnkerPos - prev.AnkerPos); transform.LookAt(target, Vector3.up); }
/// <summary> /// 前後のアンカーとの角度と位置をいい感じにする /// </summary> /// <param name="prev">一つ手前のアンカー</param> /// <param name="next">一つ先のアンカー</param> /// <returns></returns> public void AdjustCenterAnkerAngle(Anker prev, Anker next) { GameObject obj = new GameObject(); obj.transform.position = prev.AnkerPos; obj.transform.LookAt(next.AnkerPos); transform.rotation = obj.transform.rotation; DestroyImmediate(obj); }
void PutAnter() { if (prevEventType == EventType.MouseDown) { prevEventType = EventType.Repaint; return; } if (Event.current == null || Event.current.type != EventType.MouseUp) { prevEventType = EventType.MouseUp; return; } //マウスの位置情報の取得 Vector3 mousePos = Event.current.mousePosition; //Y軸方向の補間 mousePos.y = SceneView.currentDrawingSceneView.camera.pixelHeight - mousePos.y; //Ray..伸びる線のこと //シーンビューでマウスをクリックすると伸びる線を作成(画面には見えない) Ray ray = SceneView.currentDrawingSceneView.camera.ScreenPointToRay(mousePos); //当たり判定用の変数作成 RaycastHit hit = new RaycastHit(); //当たり判定の処理 //シーンビューから見てオブジェクトに当たったら処理を開始する if (Physics.Raycast(ray, out hit)) { //オブジェクトを作成 GameObject obj = Instantiate(AnkerPrefab, hit.point, Quaternion.identity); //自分の子供にする obj.transform.parent = transform; Anker temp = obj.GetComponent <Anker>(); temp.Init(lineScale, hit.normal); //でばっぐよー //Debug.DrawRay(hit.point,hit.normal * 10000.0f, Color.blue, 100.0f, false); //オブジェクトの法線の向きをそろえる obj.transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal); } //現在のイベントのタイプの更新 prevEventType = EventType.MouseDown; //!< 線情報を更新 CreateLine(); }
static void Main(string[] args) { //TODO: Clean up :) const string ConnectionString = "mongodb://*****:*****@ds052968.mlab.com:52968/mimdb"; // Create a MongoClient object by using the connection string var client = new MongoClient(ConnectionString); //Use the MongoClient to access the server var database = client.GetDatabase("mimdb"); var roomCollection = database.GetCollection <Room>("Room"); Console.WriteLine("Cleaning DB"); database.DropCollection("Room"); Console.WriteLine("Compiling Areas."); var areaSpeed = new Stopwatch(); areaSpeed.Start(); var areas = new List <Room>(); areas.Add(Anker.VillageSquare()); areas.Add(Anker.SquareWalkOutsideTavern()); areas.Add(Anker.DrunkenSailor()); areaSpeed.Stop(); Console.WriteLine("Compiling Areas Completed in {0}ms.", areaSpeed.Elapsed.Milliseconds); Console.WriteLine("Adding Area's to Database"); var addSpeed = new Stopwatch(); addSpeed.Start(); foreach (var area in areas) { Console.WriteLine("Added {0}", area.title); roomCollection.InsertOne(area); } addSpeed.Stop(); Console.WriteLine("Adding Area's to Database Completed in {0}ms.", addSpeed.Elapsed.Milliseconds); Console.ReadLine(); }
static void Main(string[] args) { //TODO: Clean up :) using (var db = new LiteDatabase(@"C:\MyData.db")) { var col = db.GetCollection <Room>("Room"); Console.WriteLine("Cleaning DB"); db.DropCollection("Room"); Console.WriteLine("Compiling Areas."); var areaSpeed = new Stopwatch(); areaSpeed.Start(); var areas = new List <Room> { Ambush.TutorialRoom1(), Ambush.TutorialRoom2(), Ambush.TutorialLostInTheWoods(), Ambush.TutorialLostInTheWoods2(), Ambush.TutorialLostInTheWoods3(), Ambush.TutorialLostInTheWoods4(), Ambush.TutorialLostInTheWoods5(), Ambush.TutorialLostInTheWoods6(), Ambush.TutorialGoblinCamp(), Ambush.TutorialGoblinCampTentNorth(), Ambush.TutorialGoblinCampTentSouth(), Awakening.TempleOfTyr(), Anker.VillageSquare(), Anker.SquareWalkOutsideTavern(), Anker.SquareWalkOutsideStables(), Anker.RedLionStables(), Anker.SquareWalkCommerceCorner(), Anker.SquareWalkEastOfCentre(), Anker.SquareWalkEntrance(), Anker.SquareWalkSouthWestOfCentre(), Anker.SquareWalkWestOfCentre(), Anker.SquareWalkSouthOfCentre(), Anker.DrunkenSailor(), Anker.GeneralStore(), Anker.MetalMedley(), Anker.VillageHall(), Anker.VillageHallEntrance(), Anker.VillageHallEldersRoom(), Anker.TempleRoad(), Anker.TempleRoad2(), Anker.TempleRoad3(), Anker.TempleEntrance(), Anker.PathToTheSquare(), Anker.AnkerLane(), Anker.AnkerLaneWest21(), Anker.AnkerLaneWest25(), Anker.AnkerLaneWest37(), Anker.AnkerLaneEast22(), Anker.AnkerLaneEast23(), Anker.AnkerLaneEast24(), Anker.AnkerHome(), Anker.AnkerHome2(), Anker.AnkerHome3(), Anker.AnkerHome4(), Anker.AnkerHome5(), Anker.AnkerHome6(), Anker.AnkerHome31(), Anker.AnkerHome32(), Anker.AnkerHome33(), Anker.AnkerHome34(), Anker.AnkerHome35(), Anker.AnkerHome36(), }; areaSpeed.Stop(); Console.WriteLine("Compiling Areas Completed in {0}ms.", areaSpeed.Elapsed.Milliseconds); //check areas for duplicate ids Console.WriteLine("Adding Area's to Database"); var addSpeed = new Stopwatch(); addSpeed.Start(); foreach (var area in areas) { Console.WriteLine("Added {0}", area.title); col.Insert(Guid.NewGuid(), area); } addSpeed.Stop(); Console.WriteLine("Adding Area's to Database Completed in {0}ms.", addSpeed.Elapsed.Milliseconds); Console.WriteLine("{0} Areas added", areas.Count); Console.ReadLine(); } }
public void set(Anker a) { anker = a.AnkerPos; prevHandle = a.PrevHandlePos; nextHandle = a.NextHandlePos; }
static void Main(string[] args) { //TODO: Clean up :) const string ConnectionString = "mongodb://*****:*****@ds052968.mlab.com:52968/mimdb"; // Create a MongoClient object by using the connection string var client = new MongoClient(ConnectionString); //Use the MongoClient to access the server var database = client.GetDatabase("mimdb"); var roomCollection = database.GetCollection <Room>("Room"); Console.WriteLine("Cleaning DB"); database.DropCollection("Room"); Console.WriteLine("Compiling Areas."); var areaSpeed = new Stopwatch(); areaSpeed.Start(); var areas = new List <Room> { Ambush.TutorialRoom1(), Ambush.TutorialRoom2(), Awakening.TempleOfTyr(), Anker.VillageSquare(), Anker.SquareWalkOutsideTavern(), Anker.SquareWalkOutsideStables(), Anker.RedLionStables(), Anker.SquareWalkCommerceCorner(), Anker.SquareWalkEastOfCentre(), Anker.SquareWalkEntrance(), Anker.SquareWalkSouthWestOfCentre(), Anker.SquareWalkWestOfCentre(), Anker.SquareWalkSouthOfCentre(), Anker.DrunkenSailor(), Anker.GeneralStore(), Anker.MetalMedley(), Anker.VillageHall(), Anker.VillageHallEntrance(), Anker.VillageHallEldersRoom(), Anker.TempleRoad(), Anker.TempleRoad2(), Anker.TempleEntrance(), Anker.PathToTheSquare(), Anker.AnkerLane(), Anker.AnkerLaneWest21(), Anker.AnkerLaneWest25(), Anker.AnkerLaneWest37(), Anker.AnkerLaneEast22(), Anker.AnkerLaneEast23(), Anker.AnkerLaneEast24(), Anker.AnkerHome(), Anker.AnkerHome2(), Anker.AnkerHome3(), Anker.AnkerHome4(), Anker.AnkerHome5(), Anker.AnkerHome6(), Anker.AnkerHome31(), Anker.AnkerHome32(), Anker.AnkerHome33(), Anker.AnkerHome34(), Anker.AnkerHome35(), Anker.AnkerHome36(), }; areaSpeed.Stop(); Console.WriteLine("Compiling Areas Completed in {0}ms.", areaSpeed.Elapsed.Milliseconds); //check areas for duplicate ids Console.WriteLine("Adding Area's to Database"); var addSpeed = new Stopwatch(); addSpeed.Start(); foreach (var area in areas) { Console.WriteLine("Added {0}", area.title); roomCollection.InsertOne(area); } addSpeed.Stop(); Console.WriteLine("Adding Area's to Database Completed in {0}ms.", addSpeed.Elapsed.Milliseconds); Console.WriteLine("{0} Areas added", areas.Count); Console.ReadLine(); }
//角度調整処理群────────────────────────────────────────────────────────────── /// <summary> /// 直線になるように最初のアンカーを調整する(2点の状態のみ作動) /// </summary> /// <param name="next">一つ手前のアンカー</param> /// <returns></returns> public void AdjustFirstAnkerAngle(Anker next) { transform.LookAt(next.AnkerPos, Vector3.up); }
/// <summary> /// 前のアンカーに影響するハンドルの長さを調整する /// </summary> /// <param name="prev">一つ前のアンカー</param> /// <returns></returns> public void AdjustPrevHandleRange(Anker prev) { //!< ハンドルの影響値は自分の座標が2、次のアンカー座標が1 //!< 06/17 大きさへの対処を追加 prevHandle.transform.localPosition = new Vector3(0, 0, -Vector3.Distance(AnkerPos, prev.AnkerPos) / 3) / prev.gameObject.transform.localScale.x; }
/// <summary> /// 次のアンカーに影響するハンドルの長さを調整する /// </summary> /// <param name="next">一つ先のアンカー</param> /// <returns></returns> public void AdjustNextHandleRange(Anker next) { //!< ハンドルの影響値は自分の座標が2、次のアンカー座標が1 //!< 06/17 大きさへの対処を追加 nextHandle.transform.localPosition = new Vector3(0, 0, Vector3.Distance(AnkerPos, next.AnkerPos) / 3) / next.gameObject.transform.localScale.x; }
/// <summary> /// 次のアンカーとの角度と位置をいい感じにする /// </summary> /// <param name="next">一つ先のアンカー</param> /// <returns></returns> public void AdjustNextAnkerAngle(Anker next) { transform.LookAt(next.PrevHandlePos); }