public void SetControllerTransform(Transform controller) { controllerTransform = new StoreTransform(); controllerTransform.position = controller.position; controllerTransform.localScale = controller.localScale; controllerTransform.rotation = controller.rotation; }
public TrackerPositionData SetOffsetAuto(Transform offsetObject) { if (offsetObject.parent.parent.parent != null) { ChildOffsetTransform = new StoreTransform(offsetObject); offsetObject = offsetObject.parent; } OffsetTransform = new StoreTransform(offsetObject); TrackerTransform = new StoreTransform(offsetObject.parent); ParentTransform = new StoreTransform(offsetObject.parent.parent); return(this); }
protected virtual void Start() { var infoArgs = new ZMPlayerInfoEventArgs(_playerInfo); // Set original facing direction so the player faces the center of the stage. SetMovementDirection(transform.position.x > 0 ? MovementDirectionState.FACING_LEFT : MovementDirectionState.FACING_RIGHT); _baseColor = _light.color; _goreEmitter.GetComponent <Renderer>().material.color = _baseColor; _goreEmitter.startColor = _baseColor; _material.color = Color.black; _initialTransform = new StoreTransform(transform); Notifier.SendEventNotification(OnPlayerCreate, infoArgs); }
private void Calibrate() { var settings = new VRIKCalibrator.Settings { }; Transform headTracker = handler.HMDObject.transform;// AddCalibrateTransform(handler.HMDObject.transform, TrackerNums.Zero); var controllerTransforms = (new Transform[] { handler.LeftControllerObject.transform, handler.RightControllerObject.transform }).Select((d, i) => new { index = i, pos = headTracker.InverseTransformDirection(d.transform.position - headTracker.position), transform = d.transform }).OrderBy(d => d.pos.x).Select(d => d.transform); leftHandTracker = controllerTransforms.ElementAtOrDefault(0);// AddCalibrateTransform(handler.LeftControllerObject.transform, TrackerNums.Zero); rightHandTracker = controllerTransforms.ElementAtOrDefault(1);// AddCalibrateTransform(handler.RightControllerObject.transform, TrackerNums.Zero); var trackerTransforms = handler.Trackers.Select((d, i) => new { index = i, pos = headTracker.InverseTransformDirection(d.transform.position - headTracker.position), transform = d.transform }).ToList(); if (handler.Trackers.Count >= 3) { //トラッカー3つ以上あれば腰も設定 bodyTracker = trackerTransforms.OrderByDescending(d => d.pos.y).Select(d => d.transform).First();// handler.Trackers[0].transform;// AddCalibrateTransform(handler.Trackers[0].transform, TrackerNums.Zero); leftFootTracker = trackerTransforms.OrderBy(d => d.pos.y).Take(2).OrderBy(d => d.pos.x).Select(d => d.transform).First();// handler.Trackers[2].transform;// AddCalibrateTransform(handler.Trackers[2].transform, TrackerNums.Zero); rightFootTracker = trackerTransforms.OrderBy(d => d.pos.y).Take(2).OrderByDescending(d => d.pos.x).Select(d => d.transform).First();// handler.Trackers[1].transform;// AddCalibrateTransform(handler.Trackers[1].transform, TrackerNums.Zero); } else if (handler.Trackers.Count >= 2) { //トラッカーが2つだけなら両足 leftFootTracker = trackerTransforms.OrderBy(d => d.pos.y).Take(2).OrderBy(d => d.pos.x).Select(d => d.transform).First();// handler.Trackers[1].transform;// AddCalibrateTransform(handler.Trackers[1].transform, TrackerNums.Zero); rightFootTracker = trackerTransforms.OrderBy(d => d.pos.y).Take(2).OrderByDescending(d => d.pos.x).Select(d => d.transform).First();// handler.Trackers[0].transform;// AddCalibrateTransform(handler.Trackers[0].transform, TrackerNums.Zero); } else if (handler.Trackers.Count >= 1) { //トラッカーが1つだけなら腰だけ bodyTracker = handler.Trackers[0].transform;// AddCalibrateTransform(handler.Trackers[0].transform, TrackerNums.Zero); } //DoCalibrate(vrik, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker); //DoCalibrate2(vrik, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker); vrik.solver.IKPositionWeight = 1.0f; VRIKCalibrator.Calibrate(vrik, new VRIKCalibrator.Settings() { headOffset = new Vector3(0f, -0.15f, -0.15f), handOffset = new Vector3(0f, -0.03f, -0.07f) }, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker); VRIKCalibrator.Calibrate(vrik, new VRIKCalibrator.Settings() { headOffset = new Vector3(0f, -0.15f, -0.15f), handOffset = new Vector3(0f, -0.03f, -0.07f) }, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker); VRIKCalibrator.Calibrate(vrik, new VRIKCalibrator.Settings() { headOffset = new Vector3(0f, -0.15f, -0.15f), handOffset = new Vector3(0f, -0.03f, -0.07f) }, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker); if (handler.Trackers.Count == 1) { vrik.solver.plantFeet = true; vrik.solver.locomotion.weight = 1.0f; var rootController = vrik.references.root.GetComponent<VRIKRootController>(); if (rootController != null) GameObject.Destroy(rootController); } CurrentSettings.headTracker = StoreTransform.Create(headTracker); CurrentSettings.bodyTracker = StoreTransform.Create(bodyTracker); CurrentSettings.leftHandTracker = StoreTransform.Create(leftHandTracker); CurrentSettings.rightHandTracker = StoreTransform.Create(rightHandTracker); CurrentSettings.leftFootTracker = StoreTransform.Create(leftFootTracker); CurrentSettings.rightFootTracker = StoreTransform.Create(rightFootTracker); }
/// <summary> /// Parse the trigger json definition /// </summary> private void Parse(Dictionary<string,object> screen) { // Log.Debug("PARSE Screen: "+screen["id"].ToString()); //TODO we might want to create the game object here? //set parameters gameObject.name = screen["id"].ToString(); nextDefaultScreenName = screen["next"].ToString(); backScreenName = screen["back"].ToString(); string layers = screen["layers"].ToString(); string[] listOfLayers = layers.Split(','); foreach(string layer in listOfLayers) { this.layerMask |= 1 << LayerMask.NameToLayer(layer); } //parse list of objects if(screen.ContainsKey("objects")) { uiManager = UIManager.Instance; screenObjects = uiManager.LoadResources(screen, gameObject); huds = uiManager.GetHudNames(screen); popups = uiManager.GetPopupNames(screen); hudDefaultTransforms = new List<StoreTransform>(); foreach (string hud in huds) { GameObject obj = uiManager.GetHud(hud); StoreTransform transform = new StoreTransform(obj.transform.position, obj.transform.rotation, obj.transform.localScale); hudDefaultTransforms.Add(transform); } } }