首页 > 解决方案 > 碰撞后不能让我的游戏对象改变位置

问题描述

编辑:玩家、硬币、磁铁、磁铁收藏品 4 种不同的游戏对象

当我与磁铁收藏品发生碰撞时,磁铁游戏对象被激活。它有一个大碰撞器并且没有网格,所以它在玩家之前碰撞。想法是当它与硬币碰撞时,硬币应该向玩家移动,甚至磁铁会因为它的位置而工作由于附加的脚本,与玩家相同。

图片:

图1

2

3

4

我正在尝试制作 3d 跑步游戏,我已经阅读了所有相关主题并观看了 youtube 上的所有内容。这对你来说可能听起来像是一个俗气的问题,但我是编码的初学者。所以我的问题是,在我拿起硬币磁铁后,我将磁铁游戏对象设置为活动状态,当它与黄金碰撞时,黄金应该向我的玩家移动。我无法完成这项工作。现在已经尝试了一天半。等待你的解决方案我也尝试了通过将 debug.log 放在那里的代码,它们被打印到控制台。似乎硬币不会改变它们的位置,除非你们试一试

我把它贴在硬币上

     public   GameObject p;
private float movementSpeed= 10f;
private void Start()
{
   

}

private void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("Magnet"))
    {
        
        transform.position = Vector3.MoveTowards(transform.position, other.transform.position, movementSpeed * Time.deltaTime);

    }
}

这会吸引人

void Start()
{
    transform.position = p.transform.position;
}

// Update is called once per frame
void Update()
{
    transform.position = p.transform.position;
}

也尝试了这个代码的硬币,但它也没有工作

public   GameObject p;
private float movementspeed= 10f;
private void Start()
{
   

}

private void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("Magnet"))
    {
        
        transform.position =(transform.position - p.transform.position)*time.deltatime*speed;

    }
}

如果需要其他任何东西,我会立即更新帖子。我只是在这里等待解决方案。谢谢

标签: c#unity3dgame-physicsmove

解决方案


推荐阅读