Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by UnityToMakeMoney · Oct 12, 2020 at 04:24 AM · 2dlinerendererdrawline renderer

Line Renderer Ending In the Center

Background Info: I am trying to make a drawing app for personal school use since there are some features I want that are either not implemented in other apps or I have to pay to use some of the features I want.


Current Goal: I am trying to simply make a smooth drawn line/curve(s) using the line renderer(but open to other suggestions) through vectors.


Problem: I got it to work perfectly fine, but for some reason, it just ends in the center of the screen (relative to the game camera). See Picture (put a point in each corner from left to right, should have made an upside-down "u"). alt text


Here is the script that draws:

 using System.Collections;
 using System.Collections.Generic;
 using Unity.Mathematics;
 using UnityEditor;
 using UnityEngine;
 
 public class SmoothDrawingScript : MonoBehaviour
 {
     //current camera
     [SerializeField] private Camera myCam;
     //the brush
     [SerializeField] private GameObject brush;
     //our delta since we can't do integrals
     [SerializeField] private float changeOfRate = 0.05f;
     //holds current points to draw
     private List<Vector2> currPoints = new List<Vector2>();
 
     LineRenderer lr;//will point to the line renderer of the brush
 
     private void Update()
     {
         if (Input.GetKeyDown(KeyCode.Mouse0)) {
             AddDrawingPoint();
             if (currPoints.Count == 4)
                 Draw();
         }
     }
 
 
     /* *
      * Draw The Points Using A Bezier Curve
      * */
     private void Draw() {
         GameObject brushInst = Instantiate(brush);
         lr = brushInst.GetComponent<LineRenderer>();
 
         List<Vector2> drawingPoints = Curve(currPoints, changeOfRate);
 
         lr.positionCount += drawingPoints.Count;
         Debug.Log("First Drawing Point: " + drawingPoints[0]);
 
         //Draw all the points
         for (int i = 0; i < drawingPoints.Count; i++) {
             lr.SetPosition(i, drawingPoints[i]);
             //lr.SetPosition(i+1, drawingPoints[i]);
         }
         lr = null;//this prevents accidental usage
 
         //remove current points, but keep the last point
         Vector2 lastPoint = currPoints[currPoints.Count-1];
         Debug.Log("LastPoint: " + lastPoint);
         currPoints.Clear();
         currPoints.Add(lastPoint);
     }
 
     /* *
      * Adds current mouse point to list
      * */
     private void AddDrawingPoint() {
         Vector2 p = MouseToVector();//vector to add
 
         Debug.Log("ATTEMPTING TO ADD POINT " + p);
 
         //add if not a duplicate
         if (currPoints.Count < 1)
             currPoints.Add(p);
         else if(currPoints.Count > 0 && currPoints[currPoints.Count-1] != p)
             currPoints.Add(p);
     }
 
     /* * 
      * Returns a vector relative to the camera of the mouse position
      * */
     private Vector2 MouseToVector() {
         return myCam.ScreenToWorldPoint(Input.mousePosition);
     }
 
     /* * 
      * Returns a list of vectors that is the curve
      * 
      * @param a list of 4 vectors to create a curve from
      * @param the increment from 0 to 1 for equation input
      * */
     private List<Vector2> Curve(List<Vector2> vec, float delta) {
         List<Vector2> curve = new List<Vector2>();//list to output
 
         for (float i = 0f; i <= 1f; i+=delta) {
             Vector3 temp = (Mathf.Pow((1 - i), 3f) * vec[0]) + 
                 (3*(Mathf.Pow((1-i),2f))*i*vec[1]) + 
                 (3*(1-i)*Mathf.Pow(i,2f)*vec[2]) + 
                 (Mathf.Pow(i,3)*vec[3]);
 
             curve.Add(temp);//add result to list
         }
 
         return curve;
     }
 }
 

Thanks in advance for any help!

capture.png (139.9 kB)
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

298 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Detecting if the object is hit by LineRenderer 1 Answer

LineRenderer acts strangely 0 Answers

What's the best way to draw a 2D line WITHOUT using LineRenderer? 1 Answer

Making a arrow instead of Linerenderer 2 Answers

How can I create a glowing, smooth line of any shape? 2 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges