玩家与敌人碰撞时如何阻止敌人旋转

时间:2019-07-13 14:35:07

标签: unity3d

我已经尝试了一段时间,以阻止敌人在我的玩家与之碰撞时旋转。我插入了一个刚体,我尝试冻结位置以及冻结旋转,但是他一直这样做,我找不到任何有关此问题的信息。

我在Google上搜索过几次,找不到任何问题,很接近我的问题。 这是问题的屏幕截图

https://imgur.com/fyryuqY

我也尝试将Angular拖拽设置为0,但没有成功,它仍然保持不变。 听起来好像我缺少了一些东西,但是我找不到任何解决方案。

我也曾尝试在unity论坛上查看所有答案,但找不到任何解决方案或了解此问题的方法。

我已进行编辑以插入敌方脚本 这是我的敌人脚本

using UnityEngine;
using System.Collections;


public class target : MonoBehaviour {

public float health = 100f;

public Animator animx2;
public AudioSource audiovfx2;


public void TakeDamage (float amount)
{
    health -= amount;
    if (health <= 0f) 
    {
        Die();
    }
}

void Die()
{
    animx2.SetBool("isdie",true);
    audiovfx2.Play();
    healthcontroller.score += 10;
    health -= 10;
    Destroy (gameObject, 1.5f);

}
void Update()
{

    animx2 = GetComponent<Animator>();
    GetComponent<AudioSource>().Play();
}
void OnTriggerEnter(Collider other) {
    if (other.tag == "Player") {
        Rigidbody rb = GetComponent<Rigidbody>();
        rb.angularVelocity = Vector3.zero
        //Stop Moving/Translating
        //rbdy.velocity = Vector3.zero;

        //Stop rotating
        //rbdy.angularVelocity = Vector3.zero;
    }


}

void OnTriggerExit(Collider other) {
    if (other.tag == "Player") {
        //here i want to return to normal
    }
}
}

提前谢谢

1 个答案:

答案 0 :(得分:1)

例如,您是否尝试使Rigidbody组件的angularVelocity无效

  

rb.angularVelocity = Vector3.zero;