相关疑难解决方法(0)

如何制作bezier连续或不连续的单个锚点

我正在使用以下代码创建贝塞尔曲线.通过在场景视图中移动单击,可以扩展曲线以连接多个贝塞尔曲线.我的代码具有使整个曲线连续或不连续的功能.我意识到我需要使个别点(特别是锚点)具有此功能.

我认为最理想的方法是为具有此功能的点创建一个新类(使点连续或不连续),因为这可以用于添加可能特定于点的其他属性.怎么办呢?

路径

[System.Serializable]
public class Path {

[SerializeField, HideInInspector]
List<Vector2> points;

[SerializeField, HideInInspector]
public bool isContinuous;

public Path(Vector2 centre)
{
    points = new List<Vector2>
    {
        centre+Vector2.left,
        centre+(Vector2.left+Vector2.up)*.5f,
        centre + (Vector2.right+Vector2.down)*.5f,
        centre + Vector2.right
    };
}

public Vector2 this[int i]
{
    get
    {
        return points[i];
    }
}

public int NumPoints
{
    get
    {
        return points.Count;
    }
}

public int NumSegments
{
    get
    {
        return (points.Count - 4) / 3 + 1;
    }
}

public void AddSegment(Vector2 anchorPos)
{
    points.Add(points[points.Count - …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine unity3d-editor

18
推荐指数
1
解决办法
938
查看次数

我怎样才能找出造成垃圾的原因?

这是一个非常普遍的基于学习的问题,而不是技术问题.

我正在Unity中制作游戏.游戏涉及许多相当复杂,高对象数的进程,因此,我产生了大量的垃圾.每个制作使用托管代码的游戏的人都知道,垃圾收集峰值是一个巨大的口号.我也试图瞄准移动设备,所以这种痛苦被放大了.

我的目标很简单:跟踪生成最多垃圾和池的过程并重用所涉及的对象,以减少垃圾收集器的负载.我已经处理了所有明显的类,但我的GC问题仍然存在.如果有人能在这里提供更多的智慧,请带上它.

我在研究中无法追踪的是测量GC负载和跟踪代码本身问题点的好方法.我可以从Unity和诊断类中获取有关内存池大小的指标(虽然我不知道这些数字的真正意义)并且我可以显示自开始以来发生的GC集合的总数,但是我调试这个问题的知识在那里结束了.

我知道必须有更好的方法来解决这个问题.任何人都可以指出我可以帮助我在这里的正确的工具或框架类(或库?)?我已经看到一些调试器程序(sgen?),它是Mono的一部分,但我找不到下载或更不用说如何将它连接到Unity游戏的指南.

任何帮助将不胜感激.谢谢.

c# mono garbage-collection unity-game-engine

15
推荐指数
1
解决办法
9391
查看次数

如何调整一个克隆的形状/尺寸以影响场景视图中的所有其他克隆

我想通过调整一个来改变/调整场景视图中几个克隆对象的形状/尺寸.这个对象可以说是需要扩展的四元组或线条渲染器.例如,在场景视图中扩展(使用鼠标)一个游戏对象线渲染器时,所有其他克隆都会受到影响.我知道在克隆它之前调整一个对象的形状/尺寸要简单得多,也可以在预制件上进行此更改并应用于所有对象,但我需要看到动态更改,因为它们恰好使我的设计过程更多有效.我还想在需要时打开和关闭此功能.请看看我是如何在这个问题中创建克隆的 .

请注意,我不想在运行时实现此目的.

c# unity-game-engine unity-editor

5
推荐指数
1
解决办法
392
查看次数