- 在线时间
- 0 小时
- 最后登录
- 2018-11-30
- 注册时间
- 2018-11-30
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7 点
- 威望
- 0 点
- 阅读权限
- 10
- 积分
- 4
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 3
- 主题
- 3
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级 80% 该用户从未签到
- 自我介绍
- 建模大神
|
发表于 2018-11-30 10:58
|显示全部楼层
|
unity3d实现飞行模拟
值得注意的是,模型要于代码的方向和轴向一致,多多改几次就能调整合适的了。
制作空物体,放在飞机模型合适的位置
using UnityEngine;
using System.Collections;
public class FlyTest : MonoBehaviour {
public GameObject box;
private Transform Head;
private Transform LeftAirfoil;
private Transform RightArifoil;
private Transform LeftTailAirfoil;
private Transform RightTailAirfoil;
private float speed = 250.0f;
private Rigidbody rb;
void Start()
{
box = GameObject.Find("Plane");
Head = transform.Find("Head");
LeftAirfoil = transform.Find("LeftAirfoil");
RightArifoil = transform.Find("RightAirfoil");
LeftTailAirfoil = transform.Find("LeftTailAirfoil");
RightTailAirfoil = transform.Find("RightTailAirfoil");
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
transform.Translate(Vector3.right * Time.deltaTime);
//俯冲
if(Input .GetKey (KeyCode.W ))
{
rb.AddForceAtPosition(transform.up * 5.0f, LeftTailAirfoil.position);
rb.AddForceAtPosition(transform.up * 5.0f, RightTailAirfoil.position);
}
//爬升
else if(Input .GetKey (KeyCode .S ))
{
rb.AddForceAtPosition(transform.up * -5.0f, LeftTailAirfoil.position);
rb.AddForceAtPosition(transform.up * -5.0f, RightTailAirfoil.position);
}
//左翻滚
else if(Input .GetKey (KeyCode .A ))
{
rb.AddForceAtPosition(transform.up * -5.0f, LeftTailAirfoil.position);
rb.AddForceAtPosition(transform.up * 5.0f, RightTailAirfoil.position);
}
//右翻滚
else if(Input .GetKey (KeyCode .D ))
{
rb.AddForceAtPosition(transform.up * 5.0f, LeftTailAirfoil.position);
rb.AddForceAtPosition(transform.up * -5.0f, RightTailAirfoil.position);
}
}
}
---------------------
作者:当年人
来源:CSDN
|
zan
|