Beispiel #1
0
 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;
     }
 }
Beispiel #2
0
        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);
        }