Esempio n. 1
0
    void UpdateSaveValues()
    {
        GlobalSettings globalSettings = new GlobalSettings
        {
            IP           = inputFields[(int)FIELD_ID.SERVER_IP].text.Trim(),
            idleInterval = float.Parse(inputFields[(int)FIELD_ID.IDLE_INTERVAL].text),

            useServer     = toggles[(int)TOGGLE_ID.USE_SERVER].isOn,
            useMocky      = toggles[(int)TOGGLE_ID.USE_MOCKY].isOn,
            useKeyboard   = toggles[(int)TOGGLE_ID.USE_KEYBOARD].isOn,
            muteAllSounds = toggles[(int)TOGGLE_ID.MUTE_SOUND].isOn,
        };

        // loop through all the gameobject types in the game
        for (int i = 0; i < TrinaxGlobal.Instance.gameSettings.GameObjs.GameObj.Count; i++)
        {
            TrinaxGlobal.Instance.gameSettings.GameObjs.GameObj[i] = UpdateSavedGameObjects(TrinaxGlobal.Instance.gameSettings.GameObjs.GameObj[i].name);
        }

        float firstAidVal;

        firstAidVal = TrinaxHelperMethods.RoundToNearestMidPoint(float.Parse(inputFields[(int)FIELD_ID.FIRSTAID_RECOVER].text), 2);
        inputFields[(int)FIELD_ID.FIRSTAID_RECOVER].text = firstAidVal.ToString();

        GameSettings gameSettings = new GameSettings
        {
            //gameDuration = int.Parse(inputFields[(int)FIELD_ID.GAME_DURATION].text),
            spawnInterval   = float.Parse(inputFields[(int)FIELD_ID.SPAWN_INTERVAL].text),
            minPowerupSpawn = float.Parse(inputFields[(int)FIELD_ID.MIN_POWERUP_SPAWN].text),
            maxPowerupSpawn = float.Parse(inputFields[(int)FIELD_ID.MAX_POWERUP_SPAWN].text),

            pointsPerObject            = int.Parse(inputFields[(int)FIELD_ID.POINTS_PER_OBJECT].text),
            xpPerObject                = int.Parse(inputFields[(int)FIELD_ID.XP_PER_OBJECT].text),
            xpPerObjectMultipler       = float.Parse(inputFields[(int)FIELD_ID.XP_PER_OBJECT_MULTIPLER].text),
            MAX_XP_REQUIRED_PER_BONUS  = int.Parse(inputFields[(int)FIELD_ID.MAX_XP_REQUIRED_PER_BONUS].text),
            timeToActivateNextPattern  = float.Parse(inputFields[(int)FIELD_ID.PATTERN_INTERVAL].text),
            DifficultyIncreaseInterval = float.Parse(inputFields[(int)FIELD_ID.DIFFICULTY_INCREASE_INTERVAL].text),
            probabilityScale           = int.Parse(inputFields[(int)FIELD_ID.PROBABILITY_SCALE].text),
            firstAidRecover            = firstAidVal,
            pointsPerCoin              = int.Parse(inputFields[(int)FIELD_ID.POINTS_PER_COIN].text),
            coinFallSpeed              = float.Parse(inputFields[(int)FIELD_ID.COIN_FALL_SPEED].text),
            invunerableDuration        = int.Parse(inputFields[(int)FIELD_ID.INVUNERABLE_DURATION].text),
            umbrellaProbabilityChance  = float.Parse(inputFields[(int)FIELD_ID.UMBRELLA_CHANCE].text),

            GameObjs = TrinaxGlobal.Instance.gameSettings.GameObjs,
        };

        KinectSettings kinectSettings = new KinectSettings
        {
            minUserDistance      = TrinaxHelperMethods.RoundDecimal(sliders[(int)SLIDER_ID.KINECT_MIN_USER_DISTANCE].value, 1),
            maxUserDistance      = TrinaxHelperMethods.RoundDecimal(sliders[(int)SLIDER_ID.KINECT_MAX_USER_DISTANCE].value, 1),
            maxLeftRightDistance = TrinaxHelperMethods.RoundDecimal(sliders[(int)SLIDER_ID.KINECT_RIGHTLEFT_USER_DISTANCE].value, 1),
        };

        TrinaxGlobal.Instance.globalSettings = globalSettings;
        TrinaxGlobal.Instance.gameSettings   = gameSettings;
        TrinaxGlobal.Instance.kinectSettings = kinectSettings;
    }
Esempio n. 2
0
        public override void Build(ModuleMaker maker, GameObject root, GameObject head)
        {
            if (this.trackableHead)
            {
                head.AddComponent <KinectTrackableHead>();
            }

            if (this.trackableHands)
            {
                GameObject leftHand = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                leftHand.name             = "Left Hand";
                leftHand.transform.parent = root.transform;
                leftHand.transform.SetSiblingIndex(1);
                leftHand.transform.localPosition = new Vector3(-0.3f, 1f, 0f);
                leftHand.GetComponent <SphereCollider>().radius        = 0.1f;
                leftHand.AddComponent <KinectTrackableHand>().HandType = HandType.Left;
                MonoBehaviour.DestroyImmediate(leftHand.GetComponent <MeshRenderer>());

                GameObject rightHand = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                rightHand.name             = "Right Hand";
                rightHand.transform.parent = root.transform;
                rightHand.transform.SetSiblingIndex(2);
                rightHand.transform.localPosition = new Vector3(0.3f, 1f, 0f);
                rightHand.GetComponent <SphereCollider>().radius        = 0.1f;
                rightHand.AddComponent <KinectTrackableHand>().HandType = HandType.Right;
                MonoBehaviour.DestroyImmediate(rightHand.GetComponent <MeshRenderer>());
            }

            GameObject kinect = new GameObject("Kinect Play Area");

            kinect.transform.parent        = root.transform;
            kinect.transform.localPosition = Vector3.zero;

            KinectPlayArea playArea = kinect.AddComponent <KinectPlayArea>();

            string         assetPath = ModuleMaker.AssetPath + "/Kinect Settings.asset";
            KinectSettings asset     = AssetDatabase.LoadAssetAtPath <KinectSettings>(assetPath);

            if (asset == null)
            {
                asset = ScriptableObject.CreateInstance <KinectSettings>();
                asset.SensorLocation = this.sensorLocation;
                asset.TrackingArea   = new Rect(0f, 0f, this.trackingAreaWidth, this.trackingAreaLength);
                AssetDatabase.CreateAsset(asset, assetPath);
            }

            playArea.Settings = asset;
        }
Esempio n. 3
0
        public static void AttachKinect(ProjectorBrain brain, ProjectorEyes eyes, Vector3 location, string path)
        {
            KinectBrain kinectBrain = brain.gameObject.AddComponent <KinectBrain>();

            eyes.gameObject.AddComponent <KinectActor>();
            eyes.gameObject.AddComponent <KinectHead>();

            KinectSettings asset = ScriptableObject.CreateInstance <KinectSettings>();

            asset.SensorLocation = location;
            asset.TrackingArea   = new Rect(0f, 0f, 2f, 2f);

            AssetDatabase.CreateAsset(asset, "Assets/" + path + "/Kinect_Settings.asset");
            EditorUtility.SetDirty(asset);

            kinectBrain.Settings = asset;
        }
    TrinaxSaves CreateAdminSave()
    {
        saveGameObjects.Clear();

        for (int i = 0; i < TrinaxGlobal.Instance.AllGameObjTypesStr.Length - 1; i++)
        {
            GameObj obj = new GameObj
            {
                name             = TrinaxGlobal.Instance.AllGameObjTypesStr[i],
                objectProperties = TrinaxGlobal.Instance.gameSettings.GameObjs.GameObj[i].objectProperties,
            };
            saveGameObjects.Add(obj);
        }

        GameObjs gameObjects = new GameObjs
        {
            GameObj = saveGameObjects,
        };

        GameSettings saveGameSettings = new GameSettings
        {
            //gameDuration = TrinaxGlobal.Instance.gameSettings.gameDuration,

            spawnInterval   = TrinaxGlobal.Instance.gameSettings.spawnInterval,
            minPowerupSpawn = TrinaxGlobal.Instance.gameSettings.minPowerupSpawn,
            maxPowerupSpawn = TrinaxGlobal.Instance.gameSettings.maxPowerupSpawn,

            pointsPerObject            = TrinaxGlobal.Instance.gameSettings.pointsPerObject,
            xpPerObject                = TrinaxGlobal.Instance.gameSettings.xpPerObject,
            xpPerObjectMultipler       = TrinaxGlobal.Instance.gameSettings.xpPerObjectMultipler,
            MAX_XP_REQUIRED_PER_BONUS  = TrinaxGlobal.Instance.gameSettings.MAX_XP_REQUIRED_PER_BONUS,
            timeToActivateNextPattern  = TrinaxGlobal.Instance.gameSettings.timeToActivateNextPattern,
            DifficultyIncreaseInterval = TrinaxGlobal.Instance.gameSettings.DifficultyIncreaseInterval,
            probabilityScale           = TrinaxGlobal.Instance.gameSettings.probabilityScale,
            firstAidRecover            = TrinaxGlobal.Instance.gameSettings.firstAidRecover,
            pointsPerCoin              = TrinaxGlobal.Instance.gameSettings.pointsPerCoin,
            coinFallSpeed              = TrinaxGlobal.Instance.gameSettings.coinFallSpeed,
            invunerableDuration        = TrinaxGlobal.Instance.gameSettings.invunerableDuration,
            umbrellaProbabilityChance  = TrinaxGlobal.Instance.gameSettings.umbrellaProbabilityChance,

            GameObjs = gameObjects,
        };

        GlobalSettings saveGlobalSettings = new GlobalSettings
        {
            IP           = TrinaxGlobal.Instance.globalSettings.IP,
            photoPath    = TrinaxGlobal.Instance.globalSettings.photoPath,
            idleInterval = TrinaxGlobal.Instance.globalSettings.idleInterval,

            COMPORT1 = TrinaxGlobal.Instance.globalSettings.COMPORT1,

            useServer     = TrinaxGlobal.Instance.globalSettings.useServer,
            useMocky      = TrinaxGlobal.Instance.globalSettings.useMocky,
            useKeyboard   = TrinaxGlobal.Instance.globalSettings.useKeyboard,
            muteAllSounds = TrinaxManager.trinaxAudioManager.muteAllSounds,
        };

        AudioSettings saveAudioSettings = new AudioSettings
        {
            masterVolume  = TrinaxManager.trinaxAudioManager.audioSettings[(int)TrinaxAudioManager.AUDIOPLAYER.MASTER].slider.value,
            musicVolume   = TrinaxManager.trinaxAudioManager.audioSettings[(int)TrinaxAudioManager.AUDIOPLAYER.MUSIC].slider.value,
            SFXVolume     = TrinaxManager.trinaxAudioManager.audioSettings[(int)TrinaxAudioManager.AUDIOPLAYER.SFX].slider.value,
            SFX2Volume    = TrinaxManager.trinaxAudioManager.audioSettings[(int)TrinaxAudioManager.AUDIOPLAYER.SFX2].slider.value,
            SFX3Volume    = TrinaxManager.trinaxAudioManager.audioSettings[(int)TrinaxAudioManager.AUDIOPLAYER.SFX3].slider.value,
            SFX4Volume    = TrinaxManager.trinaxAudioManager.audioSettings[(int)TrinaxAudioManager.AUDIOPLAYER.SFX4].slider.value,
            UI_SFXVolume  = TrinaxManager.trinaxAudioManager.audioSettings[(int)TrinaxAudioManager.AUDIOPLAYER.UI_SFX].slider.value,
            UI_SFX2Volume = TrinaxManager.trinaxAudioManager.audioSettings[(int)TrinaxAudioManager.AUDIOPLAYER.UI_SFX2].slider.value,
        };

        KinectSettings saveKinectSettings = new KinectSettings
        {
            isTrackingBody       = TrinaxGlobal.Instance.kinectSettings.isTrackingBody,
            isTrackingHead       = TrinaxGlobal.Instance.kinectSettings.isTrackingHead,
            minUserDistance      = TrinaxGlobal.Instance.kinectSettings.minUserDistance,
            maxUserDistance      = TrinaxGlobal.Instance.kinectSettings.maxUserDistance,
            maxLeftRightDistance = TrinaxGlobal.Instance.kinectSettings.maxLeftRightDistance,
        };

        TrinaxSaves save = new TrinaxSaves
        {
            gameSettings   = saveGameSettings,
            globalSettings = saveGlobalSettings,
            audioSettings  = saveAudioSettings,
            kinectSettings = saveKinectSettings,
        };

        return(save);
    }
Esempio n. 5
0
        protected bool setupKinect()
        {
            if (KinectSensor.KinectSensors.Count == 0)
            {
                //메시지 박스
                //종료

                return false;
            }

            //파라미터
            var parameters = new TransformSmoothParameters
            {
                //Smoothing = 0.3f,
                //Correction = 0.0f,
                //Prediction = 0.0f,
                //JitterRadius = 1.0f,
                //MaxDeviationRadius = 0.5f


                //Smoothing = 0.5f,
                //Correction = 0.5f,
                //Prediction = 0.5f,
                //JitterRadius = 0.05f,
                //MaxDeviationRadius = 0.04f

                //Smoothing = 0.5f,
                //Correction = 0.1f,
                //Prediction = 0.5f,
                //JitterRadius = 0.1f,
                //MaxDeviationRadius = 0.1f

                //Smoothing = 0.7f,
                //Correction = 0.3f,
                //Prediction = 1.0f,
                //JitterRadius = 1.0f,
                //MaxDeviationRadius = 1.0f

                Smoothing = 0.05f,
                Correction = 0.5f,
                Prediction = 0.5f,
                JitterRadius = 0.8f,
                MaxDeviationRadius = 0.2f
            };

            //키넥트 센서
            nui = KinectSensor.KinectSensors[0];

            try
            {
                nui.Start();
            }
            catch
            {
                nui = null;
                return false;
               //Exit();
            }

            //if (nui == null)
            //{
            //    //메시지 박스 
            //    //종료
                
            //}

            if (nui != null)
            {
                
                //스켈레톤 스트림
                nui.SkeletonStream.Enable(parameters);
                //nui.SkeletonStream.Enable();
                nui.SkeletonFrameReady += new EventHandler<SkeletonFrameReadyEventArgs>(nui_SkeletonFrameReady);

                //뎁스스트림
                nui.DepthStream.Enable();
                //nui.DepthFrameReady += new EventHandler<DepthImageFrameReadyEventArgs>(nui_DepthFrameReady);

                //컬러스트림 

                nui.ColorStream.Enable();
                nui.ColorFrameReady += new EventHandler<ColorImageFrameReadyEventArgs>(nui_ColorFrameReady);

                //클릭
                afterColorReady = skip;
                afterDepthReady = skip;
                settings = new KinectSettings();
                hands = new List<Hand>();

                //제스쳐2
                _dtw1 = new DtwGestureRecognizer(12, 0.6, 1.2, 2, 2);//정지포스쳐
                _dtw2 = new DtwGestureRecognizer(12, 1.2, 2, 2, 2);//일반포스쳐
                _dtw3 = new DtwGestureRecognizer(12, 1.2, 2, 2, 10);//제스쳐

                _video = new ArrayList();
                gestureType = 1;
                postureCount = 0;
                gestureFlag = true;
                string fileName = "0.txt";
                LoadGesturesFromFile(fileName);
                Skeleton2DDataExtract.Skeleton2DdataCoordReady += NuiSkeleton2DdataCoordReadyStop;
                setupAudio();
            }
            
            return true;
        }
Esempio n. 6
0
 public void PopulateValues(KinectSettings kinectSettings)
 {
     kinectMan.minUserDistance      = kinectSettings.minUserDistance;
     kinectMan.maxUserDistance      = kinectSettings.maxUserDistance;
     kinectMan.maxLeftRightDistance = kinectSettings.maxLeftRightDistance;
 }