以2D为例,三维的你自己改一下。把下面的脚本放在一个空物体上,然后把预制拖入进去,我的预制体碰撞器使用的是环形碰撞器CircleCollider2D。半径的25倍就是两个栅栏之间的距离。然后添加一个线性渲染组件模拟拖拽轨迹。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InitFence : MonoBehaviour {
public GameObject _Box;
public float _Dis;
private LineRenderer _LineRenderer;
private Vector3 _StartPos;
private Vector3 _EndPos;
private Vector3 _TempPos;
private Vector3 m_v3;
private int num = 0;
private bool _PressDown = false;
private void Start()
{
//获取生成物体之间的距离
_Dis = _Box.GetComponent<CircleCollider2D>().radius * 2;
_LineRenderer = GetComponent<LineRenderer>();
}
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
//初始化线性渲染点
_LineRenderer.positionCount = 2;
_StartPos = ScreentoWorldPos(Input.mousePosition);
_PressDown = true;