У меня есть модель Mixamo, которую я использую для разработки. Эта модель полностью оснащена скелетом. Я пытаюсь создать функцию, которая позволит мне выбрать кусок скелета без коллайдера.Unity3d Выберите объект, ближайший к клику no colliders
Это текущий скрипт работает только с коллайдером,
public void RegisterSelectControls()
{
if (Input.GetMouseButtonDown(0))
{
var hit = new RaycastHit();
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit, 100.0f))
{
var objectHitName = hit.collider.transform.name;
Debug.Log(objectHitName);
}
}
}
Есть ли способ определить, какая часть скелета был щелчок, или ближайшая часть скелета к щелчку?
Я не хочу добавлять коллайдеры в каждую часть тела вручную, это было бы слишком чрезмерно и избыточно, и если бы я решил использовать другую модель, мне пришлось бы изменять коллайдеры коробки, я бы хотел сделать это без указав коллайдер коробки
Редактировать
Я не могу добавить коллайдеров к моделям, в будущем я намерен поддерживать позволяя пользователю загрузить модель, в которой он должен, естественно, быть в состоянии выбрать части позвоночник, с которым можно взаимодействовать, без пользовательских настроек для компонентов позвоночника
Различные коллайдеры для различных частей тела. http://answers.unity3d.com/questions/64678/head-shot-instant-kill-for-fps-enemies.html –
поиск google для «единственного выстрела головы» –
да, я знаю, что это будет работать с коллайдерами, однако там слишком много костей, и я не чувствую, что вручную добавляю коллайдеры для всех из них, я просто хотел бы рассчитать это, зарегистрировав щелчок на 2-й плоскости и найдя там ближайшую кость –