Это мой текущий код:
Код: Выделить всё
using System.Collections.Generic;
using System.Linq;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.XR.Interaction.Toolkit;
using UnityEngine.XR.Interaction.Toolkit.Interactors;
public class magicPen : MonoBehaviour
{
public Transform castPoint;
private bool checkingForMagicPoints = false;
public LineRenderer lineRenderer;
private Vector3[] rayPoints;
private List glyphs = new List();
private List glyphObjects = new List();
public GameObject glyphPrefab;
//create an action to be referenced in the editor
public void setCheckingState(bool state)
{
//set the checkingForMagicPoints variable to the declared bool
checkingForMagicPoints = state;
//check the new state of checkingForMagicPoints
//specify a new glyph if you just began clicking the magic pen
if (checkingForMagicPoints)
{
glyphs.Add(new List());
}
//instantiate a new visual glyph when you stop pressing the magic pen
else
{
Instantiate(glyphPrefab);
glyphObjects.Add(glyphPrefab);
}
}
public void CheckForMagicPoint()
{
//use this type to gain info from raycasts
RaycastHit hit;
//define the layer that we want the raycast to hit
int layer = 3;
//change it into a form that the raycast can read
int layerMask = 1 go != null).Select(go => go.transform.position).ToArray());
}
}
}
}
Для дополнительной ясности используйте переменную glyphs — это список списков игровых объектов, где каждый список соответствует одному из средств рендеринга глифов. К нему добавляется новый список, когда вы начинаете нажимать на перо, а новые игровые объекты добавляются в последний (текущий) список, когда raycast попадает в игровой объект с указанной маской слоя. Кроме того, эта игра создана в виртуальной реальности и использует набор инструментов взаимодействия XR, если это важно.
Если кто-нибудь знает, как это исправить, было бы здорово!