Пример #1
0
 private void Awake()
 {
     controller                = GameObject.FindGameObjectWithTag("Controller").GetComponent <ControllerController>();
     targetController          = controller.targetController;
     headFixedJoint            = transform.GetChild(1).gameObject.GetComponent <FixedJoint>();
     headFixedJoint.breakForce = targetController.headJointBreakForce;
 }
Пример #2
0
    //Initializes the outlets and bitcoins
    private void Start()
    {
        outlets = 0;
        bitcoin = 0;

        cc = GetComponent <ControllerController> ();
    }
Пример #3
0
 /// <summary>
 /// First unselect selected object and move the given game object to wireframe layer.
 /// </summary>
 /// <param name="gameObject"></param>
 /// <param name="cc"></param>
 public static void SelectObject(GameObject gameObject, ControllerController cc)
 {
     Unselect();
     CommonInformationHolder.selectedObject = gameObject;
     gameObject.layer = WIREFRAME_LAYER;
     cc.wireframeRenderer.material = gameObject.GetComponent <MeshRenderer>().material;
 }
Пример #4
0
    /// <summary>
    /// Create new menu state for mode selection.
    /// </summary>
    /// <param name="cc">Vive controller controller</param>
    public MenuStateMode(ControllerController cc) : base(cc)
    {
        choise1Transform = cc.choises1.transform;
        choise2Transform = cc.choises2.transform;

        choise1Renderer = choise1Transform.GetComponent <SpriteRenderer>();
        choise2Renderer = choise2Transform.GetComponent <SpriteRenderer>();
    }
Пример #5
0
    /// <summary>
    /// Select first object if no object is selected.
    /// </summary>
    /// <param name="cc">Vive controller controller</param>
    public EditObjectTool(ControllerController cc) : base(cc)
    {
        if (CommonInformationHolder.selectedObject == null)
        {
            SelectObjectTool.SelectObject(GameObject.FindGameObjectWithTag("Object"), cc);
        }
        mesh         = CommonInformationHolder.selectedObject.GetComponent <MeshFilter>().mesh;
        meshCollider = CommonInformationHolder.selectedObject.GetComponent <MeshCollider>();

        gridMaterial = cc.wireframeRenderer.gridMaterial;
    }
Пример #6
0
    /// <summary>
    /// Create new menu state for fading in menu elements.
    /// </summary>
    /// <param name="cc">Vive controller controller</param>
    /// <param name="state">State to fade to</param>
    public MenuStateFadeIn(ControllerController cc, MenuState state) : base(cc)
    {
        this.state = state;

        renderers[0] = cc.setting.GetComponent <SpriteRenderer>();
        renderers[1] = cc.choises1.GetComponent <SpriteRenderer>();
        renderers[2] = cc.choises2.GetComponent <SpriteRenderer>();
        renderers[3] = cc.choises3.GetComponent <SpriteRenderer>();
        renderers[4] = cc.choises4.GetComponent <SpriteRenderer>();
        renderers[5] = cc.back.GetComponent <SpriteRenderer>();
    }
Пример #7
0
    void Start()
    {
        meleeWeapon    = Instantiate(meleeWeapon, gameObject.transform, false);
        meleeOrig      = meleeWeapon.transform.localPosition;
        cannonReticule = Instantiate(cannonReticule);
        cannonBeam     = Instantiate(cannonBeam);
        meleeWeapon.SetActive(false);
        cannonReticule.SetActive(false);
        cannonBeam.SetActive(false);
        cannonAiming = false;

        cc = GetComponent <ControllerController> ();
    }
 // get necessary components for future reference
 private void Start()
 {
     controller             = GameObject.FindGameObjectWithTag("Controller").GetComponent <ControllerController>();
     uIControllerScript     = controller.uIController;
     targetControllerScript = controller.targetController;
     functionControlScript  = GetComponent <FunctionControl>();
     for (int i = 0; i < 2 * visualizerMaxFrames - 1; i++)
     {
         GameObject visualizeProjectile1 = Instantiate(visualizeProjectile, transform);
         visualizeProjectile1.SetActive(false);
         visualizeProjectileInstants.Add(visualizeProjectile1);
     }
 }
Пример #9
0
    /// <summary>
    /// Create new menu state for object tool selection.
    /// </summary>
    /// <param name="cc">Vive controller controller</param>
    public MenuStateObject(ControllerController cc) : base(cc)
    {
        choise1Transform = cc.choises1.transform;
        choise2Transform = cc.choises2.transform;
        choise3Transform = cc.choises3.transform;
        choise4Transform = cc.choises4.transform;
        backTransform    = cc.back.transform;

        choise1Renderer = choise1Transform.GetComponent <SpriteRenderer>();
        choise2Renderer = choise2Transform.GetComponent <SpriteRenderer>();
        choise3Renderer = choise3Transform.GetComponent <SpriteRenderer>();
        choise4Renderer = choise4Transform.GetComponent <SpriteRenderer>();
        backRenderer    = backTransform.GetComponent <SpriteRenderer>();
    }
Пример #10
0
 /// <summary>
 /// Create new tool.
 /// </summary>
 /// <param name="cc">Vive controller controller</param>
 public Tool(ControllerController cc)
 {
     this.cc = cc;
 }
Пример #11
0
 /// <summary>
 /// Unselect selected object.
 /// </summary>
 /// <param name="cc"></param>
 public SelectObjectTool(ControllerController cc) : base(cc)
 {
     Unselect();
 }
Пример #12
0
    // Update is called once per frame
    void Update()
    {
        /*
         * // Controllerの位置に合わせてラケットを動かす。Controllerは同期するまで登場しないので、こういう記述
         * GameObject controller = GameObject.Find("Controller (left)");
         * if (controller != null)
         * {
         *  if (gapPositionRacketController == new Vector3(0, 0, 0))
         *  // 初期位置の計算が済んでいない
         *  {
         *      Transform tr = GetComponent<Transform>();
         *      // ラケットの位置とコントローラの位置の差分。引き算で計算
         *      gapPositionRacketController = tr.position - controller.GetComponent<Transform>().position;
         *      // ラケットの方向とこんとろーらの方向の差分。ラケットの方向にコントローラの方向の逆数をかけることで計算
         *      gapRotationRacketController = tr.rotation * Quaternion.Inverse(controller.GetComponent<Transform>().rotation);
         *
         *  }
         *  else
         *  {
         *      // Controllerの位置に合わせてラケットを動かす。
         *
         *      Transform controllerTransform = controller.GetComponent<Transform>();
         *
         *      Vector3 newPos = controllerTransform.position + gapPositionRacketController;
         *      Quaternion newAngle = controllerTransform.rotation * gapRotationRacketController;
         *
         *      Rigidbody rb = GetComponent<Rigidbody>();
         *      // 位置の移動はTransformではなくRigidbodyのMoveを利用する
         *      // これで細かい衝突が検知される。
         *      rb.MovePosition(newPos);
         *      rb.MoveRotation(newAngle);
         *
         *  }
         * }
         *
         */

        // ボールが接触している場合、ラケットの位置に合わせてボールを移動。
        if (isBallAttached)
        {
            // RacketのTransformを取得
            Transform tr = gameObject.GetComponent <Transform>();
            // Racket上のBallの相対位置を現在のRacketの位置に合わせて絶対座標へ変換
            Vector3 newBallPos = tr.TransformPoint(ballContactPoint);
            // 新しい場所へBallを移動(Speedは0)
            gameController.setBallPos(newBallPos, new Vector3(0, 0, 0));
            // 「ボールがラケットに接触し続ける時間」が過ぎたら、ボールをリリースする
            if (Time.time > ballAttachedTime + BallAttachPeriod)
            {
                // HitLastRacketはリリース時のRacketの絶対座標
                // 当たった時からリリース時までのBallの距離をRacketの速度とみなし、Ballの速度に設定
                Vector3 newBallSpeed = (newBallPos - ballPositionOnHit) / BallAttachPeriod;

                // ラケットに当たった時のボールの速度に反発係数をかけ、ラケットの向きに。
                // Racketの法線ベクトルを取得(RacketVector, RacketCenterはそれぞれRacket上に配置)
                Vector3 racketVector =
                    GameObject.Find("RacketVector").GetComponent <Transform>().position -
                    GameObject.Find("RacketCenter").GetComponent <Transform>().position;

                // Racketの法線ベクトルと衝突時のBallの速度の内積が負の場合、ユーザはRacketを逆に持っている。法線ベクトルを逆に
                if (Vector3.Dot(racketVector, ballSpeedOnHit) > 0)
                {
                    racketVector *= -1;
                }

                // Debug.Log("Racket:Racket Vector:" + racketVector);

                // Racketの法線方向に、衝突時の速度と同じ大きさの速度と反発係数をかけ、ラケットの速度と足して、新しいボールの速度に
                newBallSpeed += racketVector.normalized * ballSpeedOnHit.magnitude * BallReboundRatio;

                Debug.Log("Racket:releaes Ball speed 2:" + newBallSpeed);
                // BallはRacketを離れた
                isBallAttached = false;
                // GameController経由でBallの速度を設定
                gameController.setBallPos(newBallPos, newBallSpeed);

                // GameControllerにボールが当たったサウンドの再生を指示
                // 打った後のボールの速度をもとに音量を計算
                float volume_coefficient = 0.01f;
                print(newBallSpeed.magnitude);
                float volume = System.Math.Min(newBallSpeed.magnitude * volume_coefficient, 1.0f);
                gameController.PlayBallHitSound(volume);

                int vibration_coefficient  = 30;
                int vibration_coefficient2 = 10;

                // int vibtime_ms = 600;
                // TODO 振動させる
                ControllerController controllerController = FindObjectOfType <ControllerController>();
                ushort f = (ushort)(newBallSpeed.magnitude * vibration_coefficient);
                int    t = (ushort)(newBallSpeed.magnitude * vibration_coefficient2);
                controllerController.start_vibration(t, f);
            }
        }
    }
Пример #13
0
 void Start()
 {
     cc = GetComponent <ControllerController> ();
 }
Пример #14
0
 public MenuStateClosed(ControllerController cc) : base(cc)
 {
 }
Пример #15
0
 public MenuOpenState(ControllerController cc) : base(cc)
 {
 }
Пример #16
0
 /// <summary>
 /// Create new menu state.
 /// </summary>
 /// <param name="cc">Vive controller controller</param>
 public MenuState(ControllerController cc)
 {
     this.cc = cc;
 }
Пример #17
0
 public MenuStateOpened(ControllerController cc) : base(cc)
 {
 }
Пример #18
0
 void Start()
 {
     rb = GetComponent <Rigidbody2D> ();
     cc = GetComponent <ControllerController> ();
     sr = GetComponent <SpriteRenderer> ();
 }
Пример #19
0
        public static void Main(string[] args)
        {
            //load settings
            Settings settings = Settings.Load();

            if (settings == null)
            {
                Console.WriteLine("Invalid settings - check the Settings.json file");
                Console.ReadKey();
                return;
            }
            settings.Save();

            //prepare storage
            FileBasedControllerStorage controllerStorage = new FileBasedControllerStorage();
            FileBasedFirmwareStorage   firmwareStorage   = new FileBasedFirmwareStorage();
            MemoryBasedLedStorage      ledStorage        = new MemoryBasedLedStorage();
            FileBasedGroupStorage      groupStorage      = new FileBasedGroupStorage();

            //initialize storage
            controllerStorage.Initialize(settings.ControllerPath);
            firmwareStorage.Initialize(settings.FirmwarePath);
            ledStorage.Initialize();
            groupStorage.Initialize(settings.GroupPath);

            //initialize business logic (handlers)
            ControllerHandler controllerHandler = new ControllerHandler(controllerStorage, groupStorage, ledStorage);
            FirmwareHandler   firmwareHandler   = new FirmwareHandler(firmwareStorage, settings);
            LedHandler        ledHandler        = new LedHandler(ledStorage, controllerStorage);
            GroupHandler      groupHandler      = new GroupHandler(groupStorage, ledStorage);
            TrunkEndpoint     trunkEndpoint     = new TrunkEndpoint(controllerStorage, ledStorage);

            //initialize API endpoints (controllers)
            BaseController       baseController       = new BaseController(settings.Oauth);
            ControllerController controllerController = new ControllerController(controllerHandler);
            ControllerTrunk      controllerTrunk      = new ControllerTrunk(trunkEndpoint);
            FirmwareController   firmwareController   = new FirmwareController(firmwareHandler);
            LedController        ledController        = new LedController(ledHandler);
            GroupController      groupController      = new GroupController(groupHandler);

            //initialize web server
            HttpService service = new DefaultHttpSysService(false, "+", settings.ServerPort);

            service.AddController(baseController, settings.Multithreaded);
            service.AddController(controllerController, settings.Multithreaded);
            service.AddController(controllerTrunk, "Trunk", true);
            service.AddController(firmwareController, settings.Multithreaded);
            service.AddController(ledController, settings.Multithreaded);
            service.AddController(groupController, settings.Multithreaded);
            //service.GetProcessorPostManipulation(DefaultHttpSysService.INTERNAL_PROCESSING_GROUP).Add(new OptionsPayloadInjector("OptionsInjector"));

            //if OAuth is enabled...
            if (settings.Oauth)
            {
                //prepare OAuth storage
                ClientAccountFileStorage clientStorage       = new ClientAccountFileStorage();
                UserAccountFileStorage   userStorage         = new UserAccountFileStorage();
                RefreshTokenFileStorage  refreshTokenStorage = new RefreshTokenFileStorage();

                //initialize oauth storage
                clientStorage.Initialize(settings.ClientPath);
                refreshTokenStorage.Initialize(settings.RefreshTokenPath);
                userStorage.Initialize(settings.UserPath);

                //prepare OAuth core
                OAuth2 oauth = new OAuth2("fwehnvd3432nfre7r834nfsfiu43kmvrew!");
                oauth.ClientCredentialsAuthorization = new ClientCredentialsAuthorization(oauth, clientStorage);
                oauth.PasswordAuthorization          = new PasswordAuthorization(oauth, clientStorage, userStorage);
                oauth.RefreshTokenAuthorization      = new RefreshTokenAuthorization(oauth, clientStorage, userStorage, refreshTokenStorage);
                service.GetProcessorPreManipulation(false).Add(new CustomizedAccessTokenValidator(oauth.AccessTokenValidator));

                //prepare OAuth Webkit
                IScopeHandler  scopeHandler  = new ScopeHandler(service, oauth);
                IClientHandler clientHandler = new ClientHandler(clientStorage);
                IUserHandler   userHandler   = new UserHandler(clientStorage, userStorage);

                //initialize API endpoints (controllers) for OAuth + Webkit
                service.AddController(new AuthController(oauth));
                service.AddController(new ClientController(clientHandler));
                service.AddController(new ScopeController(scopeHandler));
                service.AddController(new UserController(userHandler));

                //assign scopes to OAuth Webkit API endpoints
                ClientController.AssignScopesToEndpoints(skotstein.app.ledserver.tools.Scopes.AUTH_CLIENT_READ, skotstein.app.ledserver.tools.Scopes.AUTH_CLIENT_WRITE, oauth);
                ScopeController.AssignScopeToEndpoint(skotstein.app.ledserver.tools.Scopes.AUTH_SCOPE_READ, oauth);
                UserController.AssignScopesToEndpoints(skotstein.app.ledserver.tools.Scopes.AUTH_USER_READ, skotstein.app.ledserver.tools.Scopes.AUTH_USER_WRITE, oauth);
            }



            //generate YAML file
            OpenApiDocumentBuilder documentBuilder = new OpenApiDocumentBuilder();
            OpenApiDocument        document        = documentBuilder.Build("V1");

            if (settings.Oauth)
            {
                document = documentBuilder.AddSecuritySchema(document, new List <HttpController> {
                    baseController, controllerController, groupController, ledController, firmwareController
                }, /*@"http://*****:*****@"http://localhost:4000/api/v1/auth/token");
            }
            string json = documentBuilder.AsJson(document);

            json = documentBuilder.Replace(json, new ExampleValues());


            json = documentBuilder.Replace(json, new HostValue("http://*****:*****@".\OpenApi.json", json);

            //start server
            Console.WriteLine(service.Routes);
            service.Start();
            Console.WriteLine("Service is listening on port:" + settings.ServerPort);
            if (settings.Oauth)
            {
                Console.WriteLine("OAuth 2.0 is enabled");
                Console.WriteLine("Access Token URL: POST " + restlayer.ApiBase.API_V1 + "/auth/token");
            }
            else
            {
                Console.WriteLine("OAuth 2.0 is disabled");
            }
            Console.WriteLine("Press key to terminate");
            Console.ReadKey();
        }