Unity3d 刚体力在光子统一中不起作用

Unity3d 刚体力在光子统一中不起作用,unity3d,photon,Unity3d,Photon,当它试图给我的玩家增加力量时,它会移动,然后被传送回来。我需要使用RPC吗 新代码: void OnTriggerEnter(Collider other) { if (other.gameObject.CompareTag("Weapon")) { rb.AddForce(Vector3.back * knockbackStrength, ForceMode.Impulse); } } 我个人认为: public Rigidb

当它试图给我的玩家增加力量时,它会移动,然后被传送回来。我需要使用RPC吗

新代码:

void OnTriggerEnter(Collider other)
{
    if (other.gameObject.CompareTag("Weapon"))
    {

        rb.AddForce(Vector3.back * knockbackStrength, ForceMode.Impulse);


    }
}

我个人认为:

public Rigidbody rb;
public float knockbackStrength;

void OnTriggerEnter(Collider collision)
{
    if (collision.collider.tag == "Player")
    {

        rb.AddForce(collision.position, ForceMode.Impulse);


    }
}

由于我没有看到您的其余代码,我已经添加了变量,请您澄清rb.AddForce函数中的5和0参数试图实现什么?我把它们拿出来是因为我从来没有把它们放进去。但这一切都取决于预期的结果。无论如何,试着这样做,它可能会奏效。

我个人会这样写:

public Rigidbody rb;
public float knockbackStrength;

void OnTriggerEnter(Collider collision)
{
    if (collision.collider.tag == "Player")
    {

        rb.AddForce(collision.position, ForceMode.Impulse);


    }
}

由于我没有看到您的其余代码,我已经添加了变量,请您澄清rb.AddForce函数中的5和0参数试图实现什么?我把它们拿出来是因为我从来没有把它们放进去。但这一切都取决于预期的结果。无论如何,试一下这样做,它可能会起作用。

所以我做了一些修复,玩家现在开始移动,但这是非常麻烦的,因为他移动后会被传送到原来的位置。新的代码在问题编辑中:忘记说谢谢没有问题-这很奇怪,你的Unity是什么版本?编辑:我不确定为什么这不起作用,但也许你可以在检测到冲突后,在rb.AddForce.I使用2019.4.8f1之后使用Debug.Log。碰撞检测工作正常。我认为同步有问题,但我找不到确切的问题。@Irainey6 eng,因此您个人会引入更差的性能和更容易出错的==检查,而不是使用OP已经具有的更好的比较标记,并且还会引入编译器错误,因为它不接受float、Vector3,ForceMode作为参数,但仅矢量3,ForceMode和作为力传递的位置没有任何意义。。。你是说?正如OP所做的那样,它也很好。。也许您应该亲自查看API,以了解哪个参数代表什么。。。。5原本是爆炸半径,0是向上修正器…所以我做了一些修正,玩家现在移动了,但这是非常危险的,因为他移动后会被传送到原来的位置。新的代码在问题编辑中:忘记说谢谢没有问题-这很奇怪,你的Unity是什么版本?编辑:我不确定为什么这不起作用,但也许你可以在检测到冲突后,在rb.AddForce.I使用2019.4.8f1之后使用Debug.Log。碰撞检测工作正常。我认为同步有问题,但我找不到确切的问题。@Irainey6 eng,因此您个人会引入更差的性能和更容易出错的==检查,而不是使用OP已经具有的更好的比较标记,并且还会引入编译器错误,因为它不接受float、Vector3,ForceMode作为参数,但仅矢量3,ForceMode和作为力传递的位置没有任何意义。。。你是说?正如OP所做的那样,它也很好。。也许您应该亲自查看API,以了解哪个参数代表什么。。。。5原来是爆炸半径,0是向上修正器…谁在给什么加力?您只能移动您拥有的本地玩家,然后将其同步到其他玩家。。你是否可能试图移动一个不属于你的玩家,因此当它再次同步时,它会被对象的所有者否决?一种武器正在向玩家添加力量,我想我需要一个RPC,但我怎么做?我的问题是什么意思:物理是否应用于本地玩家的本地。。或者换句话说,它是在这个播放器所属的设备上发生的?或者该触发器发生在该玩家不属于的设备上->无权覆盖位置->从本地应用的玩家的所有者处获取同步位置。谁在向什么添加力?您只能移动您拥有的本地玩家,然后将其同步到其他玩家。。你是否可能试图移动一个不属于你的玩家,因此当它再次同步时,它会被对象的所有者否决?一种武器正在向玩家添加力量,我想我需要一个RPC,但我怎么做?我的问题是什么意思:物理是否应用于本地玩家的本地。。或者换句话说,它是在这个播放器所属的设备上发生的?或者该触发器发生在该播放机不属于的设备上->无权覆盖位置->从本地应用的播放机所有者处获取同步位置。