在墙里路的暗线断点用啥方法能找到断线点位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在墙里路的暗线断点用啥方法能找到断线点位置相关的知识,希望对你有一定的参考价值。

参考技术A 首先你要确定这是一根线过来的 ,然后确定是线是否真的断了,线对零 对地都打一下电压,然后从强电箱中拆下导线对打一下以确定是不是断线。如果是断线的话你需要了解线的大致走向,用万用表的最小的电压档感应电压测试, 如果找不到的话,只能使用电工查断点测电笔,这个很多地方都有卖的 参考技术B 给测妯哪条线断,具体在什么位置不好说

如何使用字典在网格中获得点位置?

有人能帮我吗?我为我的电路板制作了一个网格。当我试图在棋盘中获得方块的Point位置时,控制台仅返回(0,0)。

这是我的点代码:

public struct Point 
{
    public int X {get; set;}
    public int Y {get; set;}

    public Point(int x, int y){
        this.X = x;
        this.Y = y;

    }


}   

这是脚本,其中每个方块在实例化时在网格中获得一个点:

public Point GridPosition { get; set; }


public void Setup(Point gridPos, Vector3 worldPos)
{
    this.GridPosition = gridPos;
    transform.position = worldPos;
}

private void OnMouseDown(){

    Debug.Log (GridPosition.X + ", "+ GridPosition.Y );

}    

这是我的主要脚本与词典部分:

public static Dictionary<Point,Grid> Tiles { get; set; }

void Start()
{
    CreateLevel ();
}

void CreateLevel()
{

    Tiles = new Dictionary<Point,Grid> ();
}

private void PlaceTilesColliders(Vector3 tileStart, float tileOffset){

    for (int y = 0; y < 8; y++) 
    {
        for (int x = 0; x < 8; x++) 
        {

            TileCollider.GetComponent<Grid> ().Setup (new Point (x, y), new Vector3 (tileStart.x + (tileOffset * x), tileStart.y - (tileOffset * y), 0));

            Tiles.Add (new Point (x, y), Instantiate(TileCollider).GetComponent<Grid>());


        }
    }  
}     

所以,控制台每次返回(0,0),无论点击哪个方块都无关紧要。有人能解释我如何在网格中获得正方形的真正点位置吗?

答案

avariant对他们的答案基本上是正确的,但我想指出你的代码实际在做什么以及为什么你得到你正在获得的价值。

让我们看看这个循环:

for (int y = 0; y < 8; y++)  {
    for (int x = 0; x < 8; x++)  {
        TileCollider.GetComponent<Grid> ().Setup (new Point (x, y), new Vector3 (tileStart.x + (tileOffset * x), tileStart.y - (tileOffset * y), 0));
        Tiles.Add (new Point (x, y), Instantiate(TileCollider).GetComponent<Grid>());
    }
} 

我们遍历Y和X(这很好),然后我们调用TileCollider.GetComponent<Grid> ()。等等,等一下,TileCollider?这是什么?这不能是我们在场景中的文件之一,我们没有使用我们的X和Y坐标来从场景中获取GameObject来获取此引用...

这意味着我们对它做的任何事情对我们游戏世界中的瓷砖都没有影响!并且因为引用没有更新,我们不断更新它的值到新的X和Y位置,覆盖我们已经完成的任何事情并且没有任何影响。

哎呀。

这就是为什么avariant说你需要调用Instantiate并创建一个新的tile,然后从该GameObject获取组件并在其上调用Setup()

另一答案

首先尝试Instantiate,然后配置生成的新Grid并添加到字典中。

for (int y = 0; y < 8; y++) 
    {
        for (int x = 0; x < 8; x++) 
        {

            GameObject newGrid = Instantiate(TileCollider);
            newGrid.GetComponent<Grid>().Setup(new Point (x, y), new Vector3 (tileStart.x + (tileOffset * x), tileStart.y - (tileOffset * y), 0));

            Tiles.Add(new Point (x, y), newGrid.GetComponent<Grid>());
        }
    } 

不过,我建议您注意养育,因为现在实例化的对象没有父对象。

以上是关于在墙里路的暗线断点用啥方法能找到断线点位置的主要内容,如果未能解决你的问题,请参考以下文章

如何使用字典在网格中获得点位置?

jsPlumb 锚点位置

photoshop中钢笔工具使用技巧

团队是砌出来的

刘晓春:如果美国利用SWIFT和美元清算系统实施金融制裁,我国如何应对?

Qt编程 treeWidge->findItems (),只能找到根节点,子节点找不到,怎么解决?或者用啥方法找到子节点?