public virtual void MakeRipples() { for (int i = 0; i < gridForces.Length; i++) { VectorGridForce gridForce = gridForces[i]; Vector2 vertexPosition = GetVertexPosition((int)((verticies.Count - 1) * ((float)i / (gridForces.Length - 1)))); gridForce.trs.position = vertexPosition; Vector3 direction = new Vector3(); if (i > 0 || i < gridForces.Length - 1) { direction = -(vertexPosition - GetVertexPosition((int)((verticies.Count - 1) * ((float)i / (gridForces.Length - 1)) + 1))); } else if (i == 0) { direction = -(GetVertexPosition(1) - vertexPosition); } else if (i == gridForces.Length - 1) { direction = -(GetVertexPosition(verticies.Count - 2) - vertexPosition); } if (i > 0) { direction = gridForces[i - 1].trs.position - gridForce.trs.position; } direction.z = gridForceTemplate.direction.z; gridForce.direction = direction + (Vector3)(rigid.velocity / 100); gridForce.trs.up = gridForce.direction; } }
public override void Awake() { #if UNITY_EDITOR if (!Application.isPlaying) { if (trs == null) { trs = GetComponent <Transform>(); } if (headCollider == null) { headCollider = GetComponent <CircleCollider2D>(); } return; } #endif base.Awake(); instance = this; // distRemainingTillMakeVertex = makeVertexInterval; headCollider.enabled = false; whatICrashInto = Physics2D.GetLayerCollisionMask(gameObject.layer); LevelMap.boundsRect = LevelMap.GetBoundsRect(); SetFacing(trs.right); trs.eulerAngles = Vector3.zero; verticies.Add(Vector3.zero); SetFacing(facingAngle); hasStar = false; gridForceTemplate = GetComponent <VectorGridForce>(); gridForces = new VectorGridForce[numberOfGridForces]; for (int i = 0; i < numberOfGridForces; i++) { VectorGridForce gridForce = new GameObject().AddComponent <VectorGridForce>(); gridForce.trs = gridForce.GetComponent <Transform>(); gridForce.trs.SetParent(trs); gridForce.scale = gridForceTemplate.scale; gridForce.direction = gridForceTemplate.direction; gridForce.radius = gridForceTemplate.radius; gridForce.color = gridForceTemplate.color; gridForce.hasColor = gridForceTemplate.hasColor; gridForces[i] = gridForce; } GameManager.updatables = GameManager.updatables.Add(this); }