SalmaBend2003
New member
- Joined
- Jun 24, 2025
- Messages
- 1
- Programming Experience
- Beginner
I'm trying to create a dynamic structure in Unity using prefab GameObjects and `LineRenderer`.
For now, I manually place the nodes and connect them using multiple LineRenderers (as shown in the script below), but this approach doesn't scale and is not flexible.
My goal is to:
1. Automatically generate intermediate nodes (subdivisions) between reference points.
2. Instantiate these nodes dynamically using a prefab.
3. Connect them with a single or multiple LineRenderers based on connectivity (like in a beam structure).
4. Ideally, base it on a structure definition similar to a connectivity matrix (like in FEM or structural mechanics).
Here’s a simplified version of my current manual setup (lots of duplicated code):
For now, I manually place the nodes and connect them using multiple LineRenderers (as shown in the script below), but this approach doesn't scale and is not flexible.
My goal is to:
1. Automatically generate intermediate nodes (subdivisions) between reference points.
2. Instantiate these nodes dynamically using a prefab.
3. Connect them with a single or multiple LineRenderers based on connectivity (like in a beam structure).
4. Ideally, base it on a structure definition similar to a connectivity matrix (like in FEM or structural mechanics).
Here’s a simplified version of my current manual setup (lots of duplicated code):
C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
public LineRenderer myLineRenderer;
public LineRenderer myLineRenderer2;
public LineRenderer myLineRenderer3;
public LineRenderer myLineRenderer4;
public LineRenderer myLineRenderer5;
public LineRenderer myLineRenderer6;
public LineRenderer myLineRenderer7;
public LineRenderer myLineRenderer8;
public LineRenderer myLineRenderer9;
public LineRenderer myLineRenderer10;
public LineRenderer myLineRenderer11;
public LineRenderer myLineRenderer12;
public GameObject firstObject;
public GameObject secondObject;
public GameObject thirdObject;
public GameObject fourthObject;
public GameObject fifthObject;
public GameObject sixthObject;
public GameObject seventhObject;
public GameObject eighthObject;
public GameObject ninthObject;
public GameObject tenthObject;
public GameObject eleventhObject;
public GameObject twelfthObject;
// Start is called before the first frame update
void Start()
{
myLineRenderer.positionCount = 2;
myLineRenderer2.positionCount = 2;
myLineRenderer3.positionCount = 2;
myLineRenderer4.positionCount = 2;
myLineRenderer5.positionCount = 2;
myLineRenderer6.positionCount = 2;
myLineRenderer7.positionCount = 2;
myLineRenderer8.positionCount = 2;
myLineRenderer9.positionCount = 2;
myLineRenderer10.positionCount = 2;
myLineRenderer11.positionCount = 2;
myLineRenderer12.positionCount = 2;
}
// Update is called once per frame
void Update()
{
myLineRenderer.SetPosition(0, firstObject.transform.position);
myLineRenderer.SetPosition(1, secondObject.transform.position);
myLineRenderer2.SetPosition(0, secondObject.transform.position);
myLineRenderer2.SetPosition(1, thirdObject.transform.position);
myLineRenderer3.SetPosition(0, thirdObject.transform.position);
myLineRenderer3.SetPosition(1, fourthObject.transform.position);
myLineRenderer4.SetPosition(0, fourthObject.transform.position);
myLineRenderer4.SetPosition(1, fifthObject.transform.position);
myLineRenderer5.SetPosition(0, fifthObject.transform.position);
myLineRenderer5.SetPosition(1, sixthObject.transform.position);
myLineRenderer6.SetPosition(0, sixthObject.transform.position);
myLineRenderer6.SetPosition(1, seventhObject.transform.position);
myLineRenderer7.SetPosition(0, seventhObject.transform.position);
myLineRenderer7.SetPosition(1, eighthObject.transform.position);
myLineRenderer8.SetPosition(0, eighthObject.transform.position);
myLineRenderer8.SetPosition(1, ninthObject.transform.position);
myLineRenderer9.SetPosition(0, ninthObject.transform.position);
myLineRenderer9.SetPosition(1, tenthObject.transform.position);
myLineRenderer10.SetPosition(0, tenthObject.transform.position);
myLineRenderer10.SetPosition(1, eleventhObject.transform.position);
myLineRenderer11.SetPosition(0, eleventhObject.transform.position);
myLineRenderer11.SetPosition(1, twelfthObject.transform.position);
myLineRenderer12.SetPosition(0, twelfthObject.transform.position);
myLineRenderer12.SetPosition(1, firstObject.transform.position);
}
}
Last edited by a moderator: