public void Start() { trajectory.Clear(); { SubMovement subMov = new SubMovement(); subMov.p1 = subMov.p0 = transform.position; subMov.q1 = subMov.q0 = transform.rotation; subMov.s1 = subMov.s0 = new Vector2(1, 1); subMov.t0 = 0.0f; subMov.t1 = 0.0001f; trajectory.Enqueue(subMov); } { SubMovement subMov = new SubMovement(); subMov.p1 = subMov.p0 = new Vector3(); subMov.q1 = subMov.q0 = Quaternion.identity; subMov.s1 = subMov.s0 = new Vector2(1, 1); subMov.t0 = 0.0f; subMov.t1 = 0.0001f; subTrajectory.Enqueue(subMov); } }
// ----- ----- ----- ----- ----- void Start() { openMovement = new SubMovement(); openMovement.t0 = 0.07f - 0.07f; openMovement.t1 = 0.07f; closeMovement = new SubMovement(); closeMovement.t0 = 0.20f - 0.13f; closeMovement.t1 = 0.13f; }
private void OnTriggerEnter2D(Collider2D collision) { // Check to make sure sub collided SubMovement go = collision.gameObject.GetComponent <SubMovement>(); if (go != null) { // we have found a sub Debug.Log(triggerString); TriggerCrossed?.Invoke(triggerString); } }
private void OnTriggerEnter2D(Collider2D collision) { // Check to make sure sub collided SubMovement go = collision.gameObject.GetComponent <SubMovement>(); if (go != null) { // we have found a sub Collect?.Invoke(pointValue); Destroy(gameObject); } }
public SubMovement AddSubMovement(Pose pose, Vector2 spring, float completeTime, float duration, bool toSubTrajectory = false) { var subMov = new SubMovement(); subMov.p0 = trajectory.Last().p1; subMov.q0 = trajectory.Last().q1; subMov.s0 = trajectory.Last().s1; subMov.p1 = pose.position; subMov.q1 = pose.rotation; subMov.s1 = spring; if (local) { subMov.p1 = gameObject.transform.TransformDirection(subMov.p1); } subMov.t0 += currTime + completeTime - duration; subMov.t1 += currTime + completeTime; if (noise) { float posdiff = (subMov.p1 - subMov.p0).magnitude; float rotdiff; Vector3 axis; (Quaternion.Inverse(subMov.q0) * subMov.q1).ToAngleAxis(out rotdiff, out axis); if (posdiff > 0.1f || rotdiff > 5.0f) { subMov.AddNoise(); } } if (!toSubTrajectory) { trajectory.Enqueue(subMov); } else { subTrajectory.Enqueue(subMov); } return(subMov); }