Пример #1
0
    /// <summary>
    /// 前のアンカーとの角度と位置をいい感じにする
    /// </summary>
    /// <param name="prev">一つ手前のアンカー</param>
    /// <returns></returns>
    public void AdjustPrevAnkerAngle(Anker prev)
    {
        //!< 見る地点を指定する
        Vector3 target = AnkerPos + (AnkerPos - prev.NextHandlePos);

        transform.LookAt(target, Vector3.up);
    }
Пример #2
0
    /// <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);
    }
Пример #3
0
    /// <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);
    }
Пример #4
0
    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();
    }
Пример #5
0
        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();
        }
Пример #6
0
        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();
            }
        }
Пример #7
0
 public void set(Anker a)
 {
     anker      = a.AnkerPos;
     prevHandle = a.PrevHandlePos;
     nextHandle = a.NextHandlePos;
 }
Пример #8
0
        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();
        }
Пример #9
0
 //角度調整処理群──────────────────────────────────────────────────────────────
 /// <summary>
 /// 直線になるように最初のアンカーを調整する(2点の状態のみ作動)
 /// </summary>
 /// <param name="next">一つ手前のアンカー</param>
 /// <returns></returns>
 public void AdjustFirstAnkerAngle(Anker next)
 {
     transform.LookAt(next.AnkerPos, Vector3.up);
 }
Пример #10
0
 /// <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;
 }
Пример #11
0
 /// <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;
 }
Пример #12
0
 /// <summary>
 /// 次のアンカーとの角度と位置をいい感じにする
 /// </summary>
 /// <param name="next">一つ先のアンカー</param>
 /// <returns></returns>
 public void AdjustNextAnkerAngle(Anker next)
 {
     transform.LookAt(next.PrevHandlePos);
 }