2015-05-21 7 views
2

В моем проекте у меня есть пистолет. Моя пуля использует жесткое тело и появляется у ствола пистолета, когда стреляю. Моя пуля отскакивает сквозь стены, иногда она проходит сквозь стены.Пуля превращается в пулевое отверстие

Ну, я знаю, в физике raycast это очень просто:

public GameObject par; 
public int damage; 

void Update() 
{ 
    RaycastHit hit; 
    Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width/2, Screen.height/2, 0)); 

    if (Input.GetMouseButtonDown(0)) 
    { 
     if (Physics.Raycast(ray, out hit, 100)) 
     { 
      GameObject particleClone = Instantiate(par, hit.point, Quaternion.LookRotation(hit.normal)) as GameObject; 
      Destroy(particleClone, 2); 
      hit.transform.SendMessage("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver); 
     } 
    } 
} 

Как это сделать в RigidBody? Пуля становится системой частиц или пулевым отверстием.

Должен ли я использовать OnCollisionEnter() или OnTriggerEnter()?

Как сделать изображение в виде пуля или систему частиц?

ответ

1

Я нашел этот JavaScript в: RAYCAST, BULLET HOLES, AND RANDOM ARRAYS

Вы принять это и добавить к Пусковой вашего оружия:


var bulletTex : GameObject[]; // creates an array to use random textures of bullet holes 

function Update() 
{ 

    var fwd = transform.TransformDirection(Vector3.forward); //casts our raycast in the forward direction 
    var hit : RaycastHit; 
    Debug.DrawRay(transform.position, fwd * 10, Color.green); //drays our raycast and gives it a green color and a length of 10 meters 

    if(Input.GetButtonDown ("Fire1") && Physics.Raycast(transform.position, fwd, hit, 10)) 
    { //when we left click and our raycast hits something 
     Instantiate(bulletTex[Random.Range(0,3)], hit.point, Quaternion.FromToRotation(Vector3.up, hit.normal)); //then we'll instantiate a random bullet hole texture from our array and apply it where we click and adjust 
    // the position and rotation of textures to match the object being hit 
    } 
} 
+0

мой имя говорит все, вы можете перевести его на C#? с; – newbieguy

Смежные вопросы