Example #1
0
        private IEnumerator UpdateLineCoroutine()
        {
            HeroActionLine lineToRender = GetLine(0);
            float t = 0f;
            int feedbackID = 0; 
            while (true)
            {
                t += (Time.deltaTime);
                if (t > 1f)
                    t = 0f;

                for (int i = 0; i < lineToRender.line.Count; i++) 
                {
                    lineToRender.line[i].transform.rotation = globalCamera.Rotation();
                    lineToRender.line[i].SetBool("Intersection", doesIntersect);
                    lineToRender.line[i].ResetTrigger("DirectionFeedback");
                }
                feedbackID = (int) Mathf.Lerp(0f, lineToRender.line.Count, t);
                if (lineToRender.line.Count > 0)
                {
                    //spriteDirection = lineToRender.line[feedbackID].transform;
                    lineToRender.line[feedbackID].SetTrigger("DirectionFeedback");
                }
                UpdateOtherLines();
                yield return null;
            }
        }
Example #2
0
        // ================================================================================================



        // ================================================================================================
        // Draw Line

        private void DrawLineRaycast(int lineID, Vector3 startLine, Vector3 endLine)
        {
            HeroActionLine lineToRender = GetLine(lineID);
            Vector3 direction = endLine - startLine;
            float size = 0;
            int index = 0;
            while (size < (direction.magnitude - spriteOffset))
            {
                size += spriteOffset;
                if (Physics.Raycast(startLine + (direction * size / direction.magnitude), Vector3.down, out hit, 10f, layerMask))
                {
                    AddSpriteToLine(lineToRender, index, hit.point);
                }
                else
                {
                    AddSpriteToLine(lineToRender, index, startLine + (direction * size / direction.magnitude) - new Vector3(0, this.transform.localPosition.y, 0));
                }
                index += 1;
            }
            for (int i = index; i < lineToRender.line.Count; i++)
            {
                lineToRender.line[i].gameObject.SetActive(false);
            }

            // Draw Cursor
            if (Physics.Raycast(endLine, Vector3.down, out hit, 10f, layerMask))
                cursorObject.transform.position = hit.point + offset;
            else
            {
                cursorObject.transform.position = endLine + offset - this.transform.localPosition;
            }
        }
Example #3
0
 protected virtual void FeedbackLine(int lineID)
 {
     HeroActionLine lineToRender = GetLine(lineID);
     for (int i = 0; i < lineToRender.line.Count; i++)
     {
         lineToRender.line[i].SetTrigger("LineFeedback");
     }
 }
Example #4
0
 private void HideLine(int lineID)
 {
     HeroActionLine lineToRender = GetLine(lineID);
     for (int i = 0; i < lineToRender.line.Count; i++)
     {
         lineToRender.line[i].gameObject.SetActive(false);
     }
 }
Example #5
0
      private void UnfeedbackLine()
      {
          HeroActionLine lineToRender = GetLine(0);
          for (int i = 0; i < lineToRender.line.Count; i++)
          {
 
              lineToRender.line[i].SetTrigger("Reset");
          }
      }
Example #6
0
 protected override void FeedbackLine(int lineID)
 {
     HeroActionLine lineToRender = GetLine(lineID);
     for (int i = 0; i < lineToRender.line.Count; i++)
     {
         lineToRender.line[i].SetTrigger("LineFeedback");
         lineToRender.line[i].ResetTrigger("Reset");
     }
 }
Example #7
0
 private void AddSpriteToLine(HeroActionLine lineToRender, int index, Vector3 pos)
 {
     if(lineToRender.line.Count <= index)
     {
         lineToRender.line.Add(Instantiate(spritePrefab, this.transform));
     }
     lineToRender.line[index].gameObject.SetActive(true);
     lineToRender.line[index].transform.position = pos + offset;
 }