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; }
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; }
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); }
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; }
public void PopulateValues(KinectSettings kinectSettings) { kinectMan.minUserDistance = kinectSettings.minUserDistance; kinectMan.maxUserDistance = kinectSettings.maxUserDistance; kinectMan.maxLeftRightDistance = kinectSettings.maxLeftRightDistance; }