c# - 限制用户可以绘制和擦除的行数
问题描述
我有一个允许用户画线的代码。
问题是我不知道如何将用户可以创建的行数限制为一条,以及如何删除它以便用户可以重试。
public GameObject linePrefab;
public GameObject currentLine;
public LineRenderer lineRenderer;
public EdgeCollider2D edgeCollider;
public List<Vector2> fingerPositions;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
CreateLine();
}
if (Input.GetMouseButton(0))
{
Vector2 tempFingerPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (Vector2.Distance(tempFingerPos, fingerPositions[fingerPositions.Count - 1]) > .1f)
{
UpdateLine(tempFingerPos);
}
}
}
void CreateLine()
{
currentLine = Instantiate(linePrefab, Vector3.zero, Quaternion.identity);
lineRenderer = currentLine.GetComponent<LineRenderer>();
edgeCollider = currentLine.GetComponent<EdgeCollider2D>();
fingerPositions.Clear();
fingerPositions.Add(Camera.main.ScreenToWorldPoint(Input.mousePosition));
fingerPositions.Add(Camera.main.ScreenToWorldPoint(Input.mousePosition));
lineRenderer.SetPosition(0, fingerPositions[0]);
lineRenderer.SetPosition(1, fingerPositions[1]);
edgeCollider.points = fingerPositions.ToArray();
}
void UpdateLine(Vector2 newFingerPos)
{
fingerPositions.Add(newFingerPos);
lineRenderer.positionCount++;
lineRenderer.SetPosition(lineRenderer.positionCount - 1, newFingerPos);
edgeCollider.points = fingerPositions.ToArray();
}
解决方案
这段代码怎么样:
void Update()
{
//--- some code here.
if (Input.GetMouseButtonDown(0))
{
if(CanDrawLine) //Checking if allowed to create line
CreateLine();
}
if (Input.GetMouseButton(0))
{
if(CanDrawLine) //Checking if allowed to create line
{
Vector2 tempFingerPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (Vector2.Distance(tempFingerPos, fingerPositions[fingerPositions.Count - 1]) > .1f)
{
UpdateLine(tempFingerPos);
}
}
}
//--- some code here
}
[SerializeField]
int m_maxCountToCreate = 10;
int m_numberOfLinesCreated = 0;
bool CanDrawLine
{
get { return m_numberOfLinesCreated == m_maxCountToCreate; }
}
void CreateLine()
{
m_numberOfLinesCreated++;
// your code here.
}
推荐阅读
- java - 从 Kafka 主题读取消息并将其转储到 HDFS
- mysql - 如何在mysql中找到最后一次出现空/特殊字符的时间戳?
- python-3.x - aiohttp response.write 缓冲区大小
- python - Python:读取巨大文本文件的特定部分(可能使用 Itertools)
- ubuntu - SDL2 看不到操纵杆,但操作系统可以
- javascript - C3 js:是否可以从头到尾对齐2个点?
- json - SharePoint Online 中英国日期格式的自定义格式视图问题
- c - 如果 scanf 没有从标准输入中获得足够的字符会发生什么?
- javascript - 获取 SyntaxError:词法声明不能出现在单语句上下文中
- asp.net-mvc - 初始化查询