1. Не выходит нормально сдвинуть объект(куб) с места, начинает переворачиваться. Что я делаю не так?
Центр масс, я сделал при помощи пустого объекта, который ставил везде, где только можно.
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class CubeCOM : MonoBehaviour {
public Transform COM;
private float a;
// Use this for initialization
void Start () {
rigidbody.centerOfMass = COM.localPosition;
}
void FixedUpdate(){
if(Input.GetKey(KeyCode.W)){
a += 0.01f * Time.deltaTime;
}
else if(Input.GetKey(KeyCode.S)){
a -= 0.01f * Time.deltaTime;
}
rigidbody.AddForce(new Vector3(0.0f, 0.0f,this.a),ForceMode.VelocityChange);
}
// Update is called once per frame
void Update () {
}
}
using System.Collections;
public class CubeCOM : MonoBehaviour {
public Transform COM;
private float a;
// Use this for initialization
void Start () {
rigidbody.centerOfMass = COM.localPosition;
}
void FixedUpdate(){
if(Input.GetKey(KeyCode.W)){
a += 0.01f * Time.deltaTime;
}
else if(Input.GetKey(KeyCode.S)){
a -= 0.01f * Time.deltaTime;
}
rigidbody.AddForce(new Vector3(0.0f, 0.0f,this.a),ForceMode.VelocityChange);
}
// Update is called once per frame
void Update () {
}
}
Пробовал центр масс задавать так:
Синтаксис:
Используется csharp
void Start () {
Transform centerOfMass = transform.Find("center");
rigidbody.centerOfMass = centerOfMass.localPosition;
}
Движение есть, но поворачивается уже в горизонтальной плоскости, до определенного момента, и дальше едет криво, как бы боком.
2. Что вообще надо прописать для самолета?
- Сила тяги Fтяг, которая с клавиши идет (W)
- Скорость v = (Fтяг - Лоб.Сопр. + Коэф.трения(масса * ускр.св.падения - Подъемная сила))/масса
- Подъемная сила (Расчитывается по Формуле жуковского F = (r*S*ka*v^2)/2) ???
3. Правильно ли будет сделать один коллайдер на весь самолет или лучше на оба крыла(скрипт для взлета) и шасси(скрипт для соприкосновения с землей)?
-