void Update() { ProcessAllTriggers(); //Start Event if (!_actionTriggered && SupportedTriggers[0].Success && cursor.mode == cursor_handle.MODE.DEFAULT) { _actionTriggered = true; cursor.mode = cursor_handle.MODE.ZOOM; ((ScaleTrigger)SupportedTriggers[1]).Restart = true; return; } //Stop Event if (_actionTriggered && SupportedTriggers[2].Success) { cursor.mode = cursor_handle.MODE.DEFAULT; _actionTriggered = false; } if (!_actionTriggered) { return; } ScaleTrigger trgr = (ScaleTrigger)SupportedTriggers[1]; if (trgr.Success) { _scale = trgr.Scale / ScaleDumpingFactor; //Keep it relative - for each axis, if rotation angle is 0 or if this is the first "frame" after a rotation angle is detected, save the data for next frame if (!ContinuousScale) { if (_scale == 0 || _lastScale == 0) { _lastScale = _scale; } else { _scale = _scale - _lastScale; } } if (ContinuousScale && ContinuousScaleSpeed != 0) { _scale = Mathf.Sign(_scale) * ContinuousScaleSpeed; } Vector3 scaleVector = this.gameObject.transform.localScale; float _scaleX = _scale; float _scaleY = _scale; float _scaleZ = _scale; //Make sure we didn't pass the max / min Scale if (Constraints.XScale.Max != 0) { if ((_scale + scaleVector.x) > Constraints.XScale.Max) { _scaleX = Constraints.XScale.Max - scaleVector.x; } } if (Constraints.YScale.Max != 0) { if ((_scale + scaleVector.y) > Constraints.YScale.Max) { _scaleY = Constraints.YScale.Max - scaleVector.y; } } if (Constraints.ZScale.Max != 0) { if ((_scale + scaleVector.z) > Constraints.ZScale.Max) { _scaleZ = Constraints.ZScale.Max - scaleVector.z; } } if (Constraints.XScale.Min != 0) { if ((_scale + scaleVector.x) < Constraints.XScale.Min) { _scaleX = Constraints.XScale.Min - scaleVector.x; } } if (Constraints.YScale.Min != 0) { if ((_scale + scaleVector.y) < Constraints.YScale.Min) { _scaleY = Constraints.YScale.Min - scaleVector.y; } } if (Constraints.ZScale.Min != 0) { if ((_scale + scaleVector.z) < Constraints.ZScale.Min) { _scaleZ = Constraints.ZScale.Min - scaleVector.z; } } //Enable / Disable Axis _scaleX = !Constraints.Freeze.X ? scaleVector.x + _scaleX : scaleVector.x; _scaleY = !Constraints.Freeze.Y ? scaleVector.y + _scaleY : scaleVector.y; _scaleZ = !Constraints.Freeze.Z ? scaleVector.z + _scaleZ : scaleVector.z; //Debug.Log (_scale); //Scale //this.gameObject.transform.localScale = new Vector3(_scaleX, _scaleY, _scaleZ); // our code //this.gameObject = new Vector3(_scaleX, 1, 1); /* TODO: * Closer the camera, more the pan speed. */ if ((Camera.main.transform.position.y < 5.0f && _scaleX >= 0) || (Camera.main.transform.position.y > zoomOut && _scaleX <= 0)) { return; } // Get mouse displacement vector from original to current position // Vector3 pos = Camera.main.ScreenToViewportPoint(Input.mousePosition - mouseOrigin); // Vector3 move = pos.y * zoomSpeed * transform.forward; Vector3 move = _scaleX * transform.forward; Debug.Log(_scaleX); // Set Drag rigidbody.drag = zoomDrag; // Zoom rigidbody.AddForce(move, ForceMode.Acceleration); if (ScaleDumpingFactor == 0) { Debug.LogError("ScaleDumpingFactor must not be zero. Changing it to 1"); ScaleDumpingFactor = 1; } //Update last scaling _lastScale = trgr.Scale / ScaleDumpingFactor; } }
void Awake() { string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/Geometry Dash RetroFunk/Created Levels/" + gameObject.GetComponent <ResourcesManager>().levelName + "/" + gameObject.GetComponent <ResourcesManager>().levelName + ".json"; level lvlObj = JsonUtility.FromJson <level>(File.ReadAllText(path)); rM = GameObject.Find("ResourcesManager").GetComponent <ResourcesManager>(); if (lvlObj.song.nameMp3 != null && lvlObj.song.nameWav != null) { GetSong songScript = GameObject.Find("GetSong").GetComponent <GetSong>(); songScript.nameMp3 = lvlObj.song.nameMp3; songScript.nameWav = lvlObj.song.nameWav; songScript.StartDownload(); } GameObject complete = GameObject.Find("LevelCompletedTrigger"); if (lvlObj.levelComplete.position == new Vector3(0, 0, 0)) { complete.transform.position = new Vector3(40, 15, 0); } else { complete.transform.position = lvlObj.levelComplete.position; } foreach (LevelObjects.Object m in lvlObj.objects) { GameObject p = Instantiate(objects[m.numberOfObject - 1]) as GameObject; p.name = "Object" + m.numberOfObject; p.transform.position = m.position; p.transform.localScale = m.scale; p.transform.rotation = m.rotation; p.GetComponent <ObjectPriorities>().group = m.group; p.GetComponent <SpriteRenderer>().sortingOrder = m.layer; p.GetComponent <ObjectPriorities>().isOnCenter = m.IsOnCenter; p.GetComponent <SpriteRenderer>().color = m.color; } foreach (LevelObjects.CustomObject1 m in lvlObj.customObject1) { GameObject p = Instantiate(CustomObject1) as GameObject; p.name = "CustomObject1"; p.transform.position = m.position; p.transform.localScale = m.scale; p.transform.rotation = m.rotation; p.GetComponent <ObjectPriorities>().group = m.group; p.GetComponent <SpriteRenderer>().sortingOrder = m.layer; p.transform.GetChild(0).GetComponent <SpriteRenderer>().sortingOrder = m.layer; p.GetComponent <ObjectPriorities>().isOnCenter = m.IsOnCenter; p.GetComponent <SpriteRenderer>().color = m.color; p.GetComponentInChildren <CustomObject>().nameImage = m.image; StartCoroutine(p.GetComponentInChildren <CustomObject>().DownloadImage(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/Geometry Dash RetroFunk/Created Levels/" + rM.levelName + "/Sprites/" + m.image)); } foreach (LevelObjects.Spike1 m in lvlObj.spike1) { GameObject p = Instantiate(Spike1) as GameObject; p.name = "Spike1"; p.transform.position = m.position; p.transform.localScale = m.scale; p.transform.rotation = m.rotation; p.GetComponent <ObjectPriorities>().group = m.group; p.GetComponent <SpriteRenderer>().sortingOrder = m.layer; p.GetComponent <ObjectPriorities>().isOnCenter = m.IsOnCenter; p.GetComponent <SpriteRenderer>().color = m.color; } foreach (LevelObjects.Cameras m in lvlObj.cameras) { GameObject c = GameObject.FindGameObjectWithTag("GameCamera"); c.transform.position = m.position; c.transform.rotation = m.rotation; c.GetComponent <ObjectPriorities>().group = m.group; c.GetComponent <ObjectPriorities>().isOnCenter = m.IsOnCenter; } foreach (LevelObjects.ColorTriggerJSON m in lvlObj.colorTrigger) { GameObject p = Instantiate(ColorTrigger) as GameObject; p.name = "ColorTrigger"; ColorTrigger script = p.GetComponent <ColorTrigger>(); p.transform.position = m.position; p.GetComponent <ObjectPriorities>().group = m.group; script.group = m.group; script.seconds = m.seconds; script.r = m.color.x; script.b = m.color.z; script.g = m.color.y; script.a = m.color.w; } foreach (LevelObjects.MoveTriggerJSON m in lvlObj.moveTrigger) { GameObject p = Instantiate(MoveTrigger) as GameObject; p.name = "MoveTrigger"; MoveTrigger script = p.GetComponent <MoveTrigger>(); p.transform.position = m.position; p.GetComponent <ObjectPriorities>().group = m.group; script.group = m.group; script.seconds = m.seconds; script.x = m.x; script.y = m.y; script.z = m.z; } foreach (LevelObjects.RotateTriggerJSON m in lvlObj.rotateTrigger) { GameObject p = Instantiate(RotateTrigger) as GameObject; p.name = "RotateTrigger"; RotateTrigger script = p.GetComponent <RotateTrigger>(); p.transform.position = m.position; p.GetComponent <ObjectPriorities>().group = m.group; script.group = m.group; script.groupObject = m.groupObject; script.seconds = m.seconds; script.x = m.x; script.y = m.y; script.z = m.z; script.rotateInObject = m.rotateInObject; } foreach (LevelObjects.ScaleTriggerJSON m in lvlObj.scaleTrigger) { GameObject p = Instantiate(ScaleTrigger) as GameObject; p.name = "ScaleTrigger"; ScaleTrigger script = p.GetComponent <ScaleTrigger>(); p.transform.position = m.position; p.GetComponent <ObjectPriorities>().group = m.group; script.group = m.group; script.seconds = m.seconds; script.x = m.x; script.y = m.y; script.z = m.z; } foreach (LevelObjects.BloomTriggerJSON m in lvlObj.bloomTrigger) { GameObject p = Instantiate(BloomTrigger) as GameObject; p.name = "BloomTrigger"; BloomTrigger script = p.GetComponent <BloomTrigger>(); p.transform.position = m.position; script.seconds = m.seconds; script.intensityGoal = m.intensity; script.thresholdGoal = m.threshold; } foreach (LevelObjects.TVTriggerJSON m in lvlObj.tvTrigger) { GameObject p = Instantiate(TVTrigger) as GameObject; p.name = "TVTrigger"; TVTrigger script = p.GetComponent <TVTrigger>(); p.transform.position = m.position; script.seconds = m.seconds; script.colorDriftGoal = m.colorDrift; script.scanLinesGoal = m.scanLines; } foreach (LevelObjects.DisableEnableTriggerJSON m in lvlObj.disableEnableTrigger) { GameObject p = Instantiate(DisableEnableTrigger) as GameObject; p.name = "DisableEnableTrigger"; DisableEnableTrigger script = p.GetComponent <DisableEnableTrigger>(); p.transform.position = m.position; p.GetComponent <ObjectPriorities>().group = m.group; script.group = m.group; script.disableOrEnable = m.disableOrEnable; } foreach (LevelObjects.FollowTriggerJSON m in lvlObj.followTrigger) { GameObject p = Instantiate(FollowTrigger) as GameObject; p.name = "FollowTrigger"; FollowTrigger script = p.GetComponent <FollowTrigger>(); p.transform.position = m.position; p.GetComponent <ObjectPriorities>().group = m.group; script.group = m.group; script.groupToFollow = m.groupToFollow; script.follow = m.follow; } foreach (LevelObjects.StartColorTriggerJSON m in lvlObj.startColorTrigger) { GameObject p = Instantiate(StartColorTrigger) as GameObject; p.name = "StartColorTrigger"; StartColor script = p.GetComponent <StartColor>(); p.transform.position = m.position; p.GetComponent <ObjectPriorities>().group = m.group; script.group = m.group; script.groupColor = m.groupColor; } foreach (LevelObjects.KillZone m in lvlObj.killZone) { GameObject p = Instantiate(KillZone) as GameObject; p.name = "KillZone"; p.transform.position = m.position; p.transform.localScale = m.scale; p.transform.rotation = m.rotation; p.GetComponent <ObjectPriorities>().group = m.group; p.GetComponent <ObjectPriorities>().isOnCenter = m.IsOnCenter; } }
/// <summary> /// Update is called once per frame. /// </summary> void Update() { ProcessAllTriggers(); //Start Event if (!_actionTriggered && SupportedTriggers[0].Success) { _actionTriggered = true; ((ScaleTrigger)SupportedTriggers[1]).Restart = true; return; } //Stop Event if (_actionTriggered && SupportedTriggers[2].Success) { _actionTriggered = false; } if (!_actionTriggered) { return; } ScaleTrigger trgr = (ScaleTrigger)SupportedTriggers[1]; if (trgr.Success) { _scale = trgr.Scale / ScaleDumpingFactor; //Keep it relative - for each axis, if rotation angle is 0 or if this is the first "frame" after a rotation angle is detected, save the data for next frame if (!ContinuousScale) { if (_scale == 0 || _lastScale == 0) { _lastScale = _scale; } else { _scale = _scale - _lastScale; } } if (ContinuousScale && ContinuousScaleSpeed != 0) { _scale = Mathf.Sign(_scale) * ContinuousScaleSpeed; } Vector3 scaleVector = this.gameObject.transform.localScale; float _scaleX = _scale; float _scaleY = _scale; float _scaleZ = _scale; //Make sure we didn't pass the max / min Scale if (Constraints.XScale.Max != 0) { if ((_scale + scaleVector.x) > Constraints.XScale.Max) { _scaleX = Constraints.XScale.Max - scaleVector.x; } } if (Constraints.YScale.Max != 0) { if ((_scale + scaleVector.y) > Constraints.YScale.Max) { _scaleY = Constraints.YScale.Max - scaleVector.y; } } if (Constraints.ZScale.Max != 0) { if ((_scale + scaleVector.z) > Constraints.ZScale.Max) { _scaleZ = Constraints.ZScale.Max - scaleVector.z; } } if (Constraints.XScale.Min != 0) { if ((_scale + scaleVector.x) < Constraints.XScale.Min) { _scaleX = Constraints.XScale.Min - scaleVector.x; } } if (Constraints.YScale.Min != 0) { if ((_scale + scaleVector.y) < Constraints.YScale.Min) { _scaleY = Constraints.YScale.Min - scaleVector.y; } } if (Constraints.ZScale.Min != 0) { if ((_scale + scaleVector.z) < Constraints.ZScale.Min) { _scaleZ = Constraints.ZScale.Min - scaleVector.z; } } //Enable / Disable Axis _scaleX = !Constraints.Freeze.X ? scaleVector.x + _scaleX : scaleVector.x; _scaleY = !Constraints.Freeze.Y ? scaleVector.y + _scaleY : scaleVector.y; _scaleZ = !Constraints.Freeze.Z ? scaleVector.z + _scaleZ : scaleVector.z; //Scale this.gameObject.transform.localScale = new Vector3(_scaleX, _scaleY, _scaleZ); if (ScaleDumpingFactor == 0) { Debug.LogError("ScaleDumpingFactor must not be zero. Changing it to 1"); ScaleDumpingFactor = 1; } //Update last scaling _lastScale = trgr.Scale / ScaleDumpingFactor; } }
public void saveFunction() { saveObjects = new Save(); GetSong songScript = GameObject.Find("GetSong").GetComponent <GetSong>(); LevelObjects.Song song = new LevelObjects.Song(); song.nameMp3 = songScript.nameMp3; song.nameWav = songScript.nameWav; saveObjects.song = song.getJSON(); GameObject levelComplete = GameObject.Find("LevelCompletedTrigger"); LevelObjects.LevelComplete complete = new LevelObjects.LevelComplete(); complete.position = levelComplete.transform.position; saveObjects.levelComplete = complete.getJSON(); allObjects = GameObject.FindGameObjectsWithTag("Objects"); allCameras = GameObject.FindGameObjectsWithTag("GameCamera"); allTriggers = GameObject.FindGameObjectsWithTag("Trigger"); foreach (GameObject m in allObjects) { if (m.name.Split(LevelObjects.numberChars, StringSplitOptions.None)[0] == "Object") { Debug.Log(m.name); ReturnPositionAfterPlay properties = m.GetComponent <ReturnPositionAfterPlay>(); ObjectPriorities priorities = m.GetComponent <ObjectPriorities>(); Color color = m.GetComponent <SpriteRenderer>().color; int layer = m.transform.GetComponent <SpriteRenderer>().sortingOrder; LevelObjects.Object obj = new LevelObjects.Object(); obj.position = properties.position; obj.scale = properties.scale; obj.rotation = properties.rotation; obj.group = priorities.group; obj.layer = layer; obj.IsOnCenter = priorities.isOnCenter; obj.color = color; obj.numberOfObject = int.Parse(m.name.Split(new string[] { "Object" }, StringSplitOptions.None)[1]); if (saveObjects.objects == null) { saveObjects.objects += obj.getJSON(); } else { saveObjects.objects += "," + obj.getJSON(); } } else if (m.name == "CustomObject1") { ReturnPositionAfterPlay properties = m.GetComponent <ReturnPositionAfterPlay>(); ObjectPriorities priorities = m.GetComponent <ObjectPriorities>(); Color color = m.GetComponent <SpriteRenderer>().color; int layer = m.transform.GetComponent <SpriteRenderer>().sortingOrder; string image = m.GetComponentInChildren <CustomObject>().nameImage; LevelObjects.CustomObject1 obj = new LevelObjects.CustomObject1(); obj.position = properties.position; obj.scale = properties.scale; obj.rotation = properties.rotation; obj.group = priorities.group; obj.layer = layer; obj.IsOnCenter = priorities.isOnCenter; obj.color = color; obj.image = image; if (saveObjects.customObject1 == null) { saveObjects.customObject1 += obj.getJSON(); } else { saveObjects.customObject1 += "," + obj.getJSON(); } } else if (m.name == "Spike1") { ReturnPositionAfterPlay properties = m.GetComponent <ReturnPositionAfterPlay>(); ObjectPriorities priorities = m.GetComponent <ObjectPriorities>(); Color color = m.GetComponent <SpriteRenderer>().color; int layer = m.transform.GetComponent <SpriteRenderer>().sortingOrder; LevelObjects.Spike1 obj = new LevelObjects.Spike1(); obj.position = properties.position; obj.scale = properties.scale; obj.rotation = properties.rotation; obj.group = priorities.group; obj.layer = layer; obj.IsOnCenter = priorities.isOnCenter; obj.color = color; if (saveObjects.spike1 == null) { saveObjects.spike1 += obj.getJSON(); } else { saveObjects.spike1 += "," + obj.getJSON(); } } } foreach (GameObject m in allCameras) { ReturnPositionAfterPlay properties = m.GetComponent <ReturnPositionAfterPlay>(); ObjectPriorities priorities = m.GetComponent <ObjectPriorities>(); LevelObjects.Cameras obj = new LevelObjects.Cameras(); obj.position = properties.position; obj.rotation = properties.rotation; obj.group = priorities.group; obj.IsOnCenter = priorities.isOnCenter; if (saveObjects.cameras == null) { saveObjects.cameras += obj.getJSON(); } else { saveObjects.cameras += "," + obj.getJSON(); } } foreach (GameObject m in allTriggers) { Vector3 position = m.GetComponent <ReturnPositionAfterPlay>().position; if (m.name == "ColorTrigger") { ColorTrigger script = m.GetComponent <ColorTrigger>(); LevelObjects.ColorTriggerJSON obj = new LevelObjects.ColorTriggerJSON(); obj.position = position; obj.group = script.group; obj.seconds = script.seconds; obj.color = script.colorFinish * 255; if (saveObjects.colorTrigger == null) { saveObjects.colorTrigger += obj.getJSON(); } else { saveObjects.colorTrigger += "," + obj.getJSON(); } } else if (m.name == "MoveTrigger") { MoveTrigger script = m.GetComponent <MoveTrigger>(); LevelObjects.MoveTriggerJSON obj = new LevelObjects.MoveTriggerJSON(); obj.position = position; obj.group = script.group; obj.seconds = script.seconds; obj.x = script.x; obj.y = script.y; obj.z = script.z; if (saveObjects.moveTrigger == null) { saveObjects.moveTrigger += obj.getJSON(); } else { saveObjects.moveTrigger += "," + obj.getJSON(); } } else if (m.name == "RotateTrigger") { RotateTrigger script = m.GetComponent <RotateTrigger>(); LevelObjects.RotateTriggerJSON obj = new LevelObjects.RotateTriggerJSON(); obj.position = position; obj.group = script.group; obj.groupObject = script.groupObject; obj.seconds = script.seconds; obj.x = script.x; obj.y = script.y; obj.z = script.z; obj.rotateInObject = script.rotateInObject; if (saveObjects.rotateTrigger == null) { saveObjects.rotateTrigger += obj.getJSON(); } else { saveObjects.rotateTrigger += "," + obj.getJSON(); } } else if (m.name == "ScaleTrigger") { ScaleTrigger script = m.GetComponent <ScaleTrigger>(); LevelObjects.ScaleTriggerJSON obj = new LevelObjects.ScaleTriggerJSON(); obj.position = position; obj.group = script.group; obj.seconds = script.seconds; obj.x = script.x; obj.y = script.y; obj.z = script.z; if (saveObjects.scaleTrigger == null) { saveObjects.scaleTrigger += obj.getJSON(); } else { saveObjects.scaleTrigger += "," + obj.getJSON(); } } else if (m.name == "BloomTrigger") { BloomTrigger script = m.GetComponent <BloomTrigger>(); LevelObjects.BloomTriggerJSON obj = new LevelObjects.BloomTriggerJSON(); obj.position = position; obj.intensity = script.intensityGoal; obj.threshold = script.thresholdGoal; obj.seconds = script.seconds; if (saveObjects.bloomTrigger == null) { saveObjects.bloomTrigger += obj.getJSON(); } else { saveObjects.bloomTrigger += "," + obj.getJSON(); } } else if (m.name == "TVTrigger") { TVTrigger script = m.GetComponent <TVTrigger>(); LevelObjects.TVTriggerJSON obj = new LevelObjects.TVTriggerJSON(); obj.position = position; obj.scanLines = script.scanLinesGoal; obj.colorDrift = script.colorDriftGoal; obj.seconds = script.seconds; if (saveObjects.tvTrigger == null) { saveObjects.tvTrigger += obj.getJSON(); } else { saveObjects.tvTrigger += "," + obj.getJSON(); } } else if (m.name == "DisableEnableTrigger") { DisableEnableTrigger script = m.GetComponent <DisableEnableTrigger>(); LevelObjects.DisableEnableTriggerJSON obj = new LevelObjects.DisableEnableTriggerJSON(); obj.position = position; obj.group = script.group; obj.disableOrEnable = script.disableOrEnable; if (saveObjects.disableEnableTrigger == null) { saveObjects.disableEnableTrigger += obj.getJSON(); } else { saveObjects.disableEnableTrigger += "," + obj.getJSON(); } } else if (m.name == "FollowTrigger") { FollowTrigger script = m.GetComponent <FollowTrigger>(); LevelObjects.FollowTriggerJSON obj = new LevelObjects.FollowTriggerJSON(); obj.position = position; obj.group = script.group; obj.groupToFollow = script.groupToFollow; obj.follow = script.follow; if (saveObjects.followTrigger == null) { saveObjects.followTrigger += obj.getJSON(); } else { saveObjects.followTrigger += "," + obj.getJSON(); } } else if (m.name == "StartColorTrigger") { StartColor script = m.GetComponent <StartColor>(); LevelObjects.StartColorTriggerJSON obj = new LevelObjects.StartColorTriggerJSON(); obj.position = position; obj.group = script.group; obj.groupColor = script.groupColor; if (saveObjects.startColorTrigger == null) { saveObjects.startColorTrigger += obj.getJSON(); } else { saveObjects.startColorTrigger += "," + obj.getJSON(); } } else if (m.name == "KillZone") { ReturnPositionAfterPlay properties = m.GetComponent <ReturnPositionAfterPlay>(); ObjectPriorities priorities = m.GetComponent <ObjectPriorities>(); LevelObjects.KillZone obj = new LevelObjects.KillZone(); obj.position = properties.position; obj.scale = properties.scale; obj.rotation = properties.rotation; obj.group = priorities.group; obj.IsOnCenter = priorities.isOnCenter; if (saveObjects.killZone == null) { saveObjects.killZone += obj.getJSON(); } else { saveObjects.killZone += "," + obj.getJSON(); } } } ResourcesManager path = gameObject.GetComponent <ResourcesManager>(); string json = "{" + saveObjects.getAllObjects() + "}"; string jsonPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/Geometry Dash RetroFunk/Created Levels/" + path.levelName + "/" + path.levelName + ".json"; File.WriteAllText(jsonPath, json); }