У меня есть в Unity ящик, за которым следует камера на плоскости. Я пытаюсь обработать столкновения между коробкой и разными объектами. Когда он сталкивается с разными предметами, он крутится, прыгает и с ним происходят странные вещи. Я загрузил на YouTube видео, чтобы показать проблему. видео.
Я создал пустой с камерой и коробкой. Этот пустой объект имеет жесткое тело массы 1.
У пустого есть скриптовый компонент:
using UnityEngine;
using System.Collections;
public class Character : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnCollisionEnter(Collision collision)
{
Debug.Log ("Entered OnCollisionEnter function");
if (collision.gameObject.name == "Wall") {
GetComponent<Rigidbody>().velocity = Vector3.zero;
Debug.Log ("Inside if statement");
}
}
}
Как видите, я попытался справиться с коллизией, написав код, который останавливает движение куба.
Дополнительная информация, которая может помочь вам, ребята:
Коробка
У него есть бокс-коллайдер. Скрипт:
using UnityEngine;
using System.Collections;
public class MoveCharacter : MonoBehaviour {
public float deltaMovement = 10f;
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
Moving();
}
void Moving()
{
//Moves the character to where it needs.
if (Input.GetKey (KeyCode.A)) {
transform.Translate (new Vector3 (-deltaMovement, 0f, 0f) * Time.deltaTime);
} else if (Input.GetKey (KeyCode.D)){
transform.Translate (new Vector3 (deltaMovement, 0f, 0f) * Time.deltaTime);
}
float yRotation = Camera.main.transform.eulerAngles.y;
float movementX = Mathf.Sin ((yRotation * Mathf.PI) / 180) * deltaMovement;
float movementZ = Mathf.Cos ((yRotation * Mathf.PI) / 180) * deltaMovement;
if (Input.GetKey (KeyCode.W)) {
transform.Translate (new Vector3 (movementX, 0f, movementZ) * Time.deltaTime, Space.World);
} else if (Input.GetKey (KeyCode.S)){
transform.Translate (new Vector3 (-movementX, 0f, -movementZ) * Time.deltaTime, Space.World);
}
}
}
Стена
Это самолет с сетчатым коллайдером, с твердым телом или без него, не имеет значения, та же проблема...
Любая помощь, пожалуйста?