Проблема с UNITY 3D Помогите пожалуйста)
Привет всем, хотел задать вопрос может кто-то сможет помочь решить. У меня проблема, мне нужно создать машину которая враждебная к игроку (тоже машине), я установил все что нужно Rigidbody, Car controller, массу на 1000 поставил, Nav Mesh Agent и почему-то она проваливается под текстурки в самом начале игры
Вот код, может, что-то в нём не так. подскажите)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class AI_Monster : MonoBehaviour
{
private NavMeshAgent AI_Agent;
private GameObject Player;
private Rigidbody rb;
public float attackDistance = 2f;
public float attackForce = 10f;
void Start()
{
AI_Agent = gameObject.GetComponent<NavMeshAgent>();
Player = GameObject.FindGameObjectWithTag("Player");
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
AI_Agent.SetDestination(Player.transform.position);
float Dist_Player = Vector3.Distance(Player.transform.position, gameObject.transform.position);
if(Dist_Player < attackDistance)
{
Vector3 direction = (Player.transform.position - transform.position).normalized;
rb.AddForce(direction * attackForce, ForceMode.Impulse);
}
}
}
Меш лучше не юзать. Он можнт млохо срабатывать на коллизии. Вместо этого лучше используйте примитивные коллайдеры.
В дополнение чтоб все было по феншую:
rb.AddForce(direction * accel * Time.fixedDeltaTime, ForceMode.Impulse);
// attackForce для большего пониманияиспользуется здесь в виде ускорения, поэтому целесообразнее обозвать переменную например accel. А так как формула применяется каждый кадр Time. fixedDeltaTime который по дефолту установлен в 0.02f, то домножаем на это значение.
}
Кроме того не известно как у вас реализована логика нахождения машины на поверххности земли...
Ну и в дополнение толкать машину силой не очень красиво будет смотреться... Рассмотрите способ движение машины путем вращения колес. Будет смотреться в 100 раз интереснее...
Проблема может быть связана с настройками Rigidbody и коллайдера вашей машины. Вы можете попробовать следующее:
1. Убедитесь, что коллайдер находится на той же высоте, что и ваша машина.
2. Попробуйте изменить тип коллайдера с "Mesh" на "Box" или "Capsule", чтобы тело не проваливалось под текстурки.
3. Проверьте, что параметры массы, гравитации и фрикции настроены правильно.
4. Если вы используете компонент Car Controller, убедитесь, что все его параметры правильно настроены.
Также можете попробовать добавить еще один компонент на вашего монстра - Mesh Renderer, который позволит отображать вашу машину на сцене.