2016-04-08 17 views
2

İki gameobject var, bunlardan biri NavMesh ile düşmanım diğerinin "kahramanı", ben sağlık sistemini sorunsuz bir şekilde yapabildim ama kılıcın ne zaman çarptığını biliyorum Düşman rijit işçinin çalışmadığı gibi görünüyor, çünkü internette bulduğum birkaç çözümü denedim ama hiçbir şey işe yaramıyor gibi görünüyor. Kılıcın çarpışmasıyla düşmanın itilmesini istiyorum. Bu denedim:Bir düşmanı tetikte geri itin

public void takeDamage() { 
    // revert rigidbody velocity: 
    rigidbody.velocity *= -1; 
} 

başka kod

float distance = 25.0f; 
       if (player.position.x < enemyPosition.position.x) { 
        Vector3 new_position = new Vector3 (distance, enemyPosition.position.y, enemyPosition.position.z); 
        rb.position = new_position; 
       } 

Teşekkür

Düzenleme:

kod ile çözülecek gibi görünüyor

:

Vector3 new_position = new Vector3 (3.0f, 0f, 0f) + rb.transform.position; 
rb.transform.position = new_position; 
+0

Ve bu örnekleri uygularken tam olarak ne olur? – CathalMF

+0

Hiçbir şey, sağlık değişkeni gerektiği gibi azalır, ancak başka hiçbir şey olmaz – user1423168

+0

Hız için kendi hızını tekrar belirleyen "Update()" yönteminde bir şey var mı? –

cevap

0

Testi bu dışarı

void OnCollisionEnter(Collision collision) { 
     if (collision.relativeVelocity.magnitude > 1) 
      rb.velocity = new Vector3(0, 10, 0); 
    } 
+1

Hiçbir şey, aynı sonucu elde ediyorum. – user1423168

+0

Muhtemelen kafesinizle ilgili bir şeylerin yanlış olduğu veya çarpışma ağzı üzerinde ayarlandığı anlamına gelir. İki kutu yapmayı deneyin ve bu kodu test edin. – Mikes3ds

İlgili konular