Возникла идея создать скилл. Идея такая, есть локация, по ней разбросаны булыжники большие, и чтобы при нажатии на определенную клавишу этот камень разрывался на куски и летел в нужную сторону. Так вот, у меня есть 2 объекта грубо говоря, камень обычный, и камень разбитый на куски в блендере.
Синтаксис:
Используется csharp
//skills
if(Input.GetKey(KeyCode.E)){
RaycastHit hit;
Vector3 fwd = transform.TransformDirection(Vector3.forward);
if(Physics.Raycast(transform.position, fwd, out hit, 10)){
if(hit.collider.tag == "stone"){
Destroy(hit.transform.gameObject);
GameObject bStone = Instantiate(brokenStone, hit.transform.position, Quaternion.identity);
Rigidbody rbStone = bStone.GetComponent<Rigidbody>();
rbStone.AddForce(fwd * 2000);
}
}
}
if(Input.GetKey(KeyCode.E)){
RaycastHit hit;
Vector3 fwd = transform.TransformDirection(Vector3.forward);
if(Physics.Raycast(transform.position, fwd, out hit, 10)){
if(hit.collider.tag == "stone"){
Destroy(hit.transform.gameObject);
GameObject bStone = Instantiate(brokenStone, hit.transform.position, Quaternion.identity);
Rigidbody rbStone = bStone.GetComponent<Rigidbody>();
rbStone.AddForce(fwd * 2000);
}
}
}
Проблема заключается в следующем, так как камень разбит на мелкие кусочки у них есть родитель, дабы собрать их в кучу в инспекторе. Как можно повлиять на всех, потому что если воздейсвовать на родителя кусочки не будут разлетаться.
Может быть использовать цикл? Или возможно есть другие соображения? Буду очень рад совету.