真实赛车游戏

  • 车轮碰撞器

车轮碰撞器

首先我们要知道车轮碰撞器里面的一些数据,给大家看一张表;

1、我们可以去资源商店里面找一个车子的模型下载下来,要车身和轮胎是分开的。WheelCollider
2、我们要对车子的车身添加碰撞器,这里注意我们在调整碰撞框的时候不要把轮子放进去了,你们看图就明白了,还要给车子添加刚体,添加在父级对象里面也就是car_1。


3、我们添加一个空对象WheelCollider,里面放四个车轮的车轮碰撞器,如图
上面的WheelControl放的是四个车轮,我们还要添加一个空对象centermess,把它的位置调在车身的中心位置。

这些是我们在引擎上面要做的事情,下面就是脚本

我们首先定义

    public WheelCollider wheelLeftFront;//车轮碰撞器—左前轮public WheelCollider wheelLeftBack;public WheelCollider wheelRightFront;public WheelCollider wheelRightBack;public Transform colliderLeftFront;//车轮public Transform colliderLeftBack;public Transform colliderRightFront;public Transform colliderRightBack;public Transform centermess;public float MoTo = 600f;//力,也就是速度public float MaxRot = 100f;//转角private Rigidbody car;//刚体

然后我们在Start()里面初始化

    void Start(){car = GetComponent<Rigidbody>();car.centerOfMass = centermess.localPosition;//这是给车座子添加质心,让车子不容易翻车}

在FixedUpdate()里面先获得碰撞器的力和转角

// An highlighted blockvoid FixedUpdate(){wheelLeftBack.motorTorque = Input.GetAxis("Vertical") * MoTo;//motorTorque代表车轮的扭力,就是动力wheelRightBack.motorTorque= Input.GetAxis("Vertical") * MoTo;wheelLeftFront.steerAngle= Input.GetAxis("Horizontal") * MaxRot;//steerAngle代表转角wheelRightFront.steerAngle= Input.GetAxis("Horizontal") * MaxRot;}

在Update()里面实现控制

// An highlighted blockvoid Update(){var pos = Vector3.zero;//初始位置,也就是静态时的位置var rot = Quaternion.identity;//四元数,初始角度,也就是静态时的角度wheelLeftFront.GetWorldPose(out pos, out rot);//GetWorldPose是世界状态,也就是在世界坐标系中的状态colliderLeftFront.position = pos;colliderLeftFront.rotation = rot;wheelRightFront.GetWorldPose(out pos, out rot);colliderRightFront.position = pos;colliderRightFront.rotation = rot;wheelLeftBack.GetWorldPose(out pos, out rot);colliderLeftBack.position = pos;colliderLeftBack.rotation = rot * Quaternion.Euler(0, 180, 0);//这里要去了解四元数和欧拉角的关系wheelRightBack.GetWorldPose(out pos, out rot);colliderRightBack.position = pos;colliderRightBack.rotation=rot* Quaternion.Euler(0, 180, 0);}

完整代码

// An highlighted block
using UnityEngine;public class move : MonoBehaviour
{public WheelCollider wheelLeftFront;public WheelCollider wheelLeftBack;public WheelCollider wheelRightFront;public WheelCollider wheelRightBack;public Transform colliderLeftFront;public Transform colliderLeftBack;public Transform colliderRightFront;public Transform colliderRightBack;public Transform centermess;public float MoTo = 600f;public float MaxRot = 100f;private Rigidbody car;void Start(){car = GetComponent<Rigidbody>();car.centerOfMass = centermess.localPosition;}void FixedUpdate(){wheelLeftBack.motorTorque = Input.GetAxis("Vertical") * MoTo;wheelRightBack.motorTorque= Input.GetAxis("Vertical") * MoTo;wheelLeftFront.steerAngle= Input.GetAxis("Horizontal") * MaxRot;wheelRightFront.steerAngle= Input.GetAxis("Horizontal") * MaxRot;}// Update is called once per framevoid Update(){var pos = Vector3.zero;var rot = Quaternion.identity;wheelLeftFront.GetWorldPose(out pos, out rot);colliderLeftFront.position = pos;colliderLeftFront.rotation = rot;wheelRightFront.GetWorldPose(out pos, out rot);colliderRightFront.position = pos;colliderRightFront.rotation = rot;wheelLeftBack.GetWorldPose(out pos, out rot);colliderLeftBack.position = pos;colliderLeftBack.rotation = rot * Quaternion.Euler(0, 180, 0);wheelRightBack.GetWorldPose(out pos, out rot);colliderRightBack.position = pos;colliderRightBack.rotation=rot* Quaternion.Euler(0, 180, 0);}
}

完整的放在网盘里的
链接:https://pan.baidu.com/s/1Sh8WjWuLnNgXGeq7tGZ1Hw
提取码:98pi

Unity3d WheelCollider制作赛车游戏相关推荐

  1. 由浅入深学习Flash制作赛车游戏教程

    赛车游戏我们总是遇到!今天给大家简单讲解一下. 先测试效果: [url=http://www.webjx.com/download.php?url=http://www.webjx.com/upfil ...

  2. 关于制作赛车游戏的一些入门知识

    在过去的几个月里,我拉着几个死党一起搞了一个iOS赛车游戏.由于当时还在上班,所以我一边白天上班,一边晚上+周末倒腾这个游戏.尽管这只是一个很简单的2D游戏,但我却在里面用了一些比较'有趣'的方法来使 ...

  3. unity3d 剧情制作_游戏设计作品集干货:跨专业如何入门 Unity3D 游戏引擎?

    游戏设计作品集,涉及游戏策划与玩法.游戏美术与Unity3D游戏引擎等内容的学习. 之前克瑞斯介绍过了游戏策划与游戏美术,本期再详细聊下什么是Unity3D游戏引擎,以及学习Unity3D游戏引擎的详 ...

  4. c语言赛车游戏代码,python制作赛车游戏

    有谁能帮我用Python解一个题或者做个小游戏,题目自行设计,大概50行, 代码如下: >>> import commands >>> dir(commands) ...

  5. c语言赛车游戏代码大全,初学者天地游戏制作--赛车游戏的完整图

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 以下是一个用线和矩形绘制的简单赛车 #include #include void main(void){ int gdriver=DETECT,gmode ...

  6. 3D赛车游戏架构设计

    赛车作为一个非常热门的行业,在游戏领域也是一样的,因其刺激性和其PK性,所以一直受玩家欢迎,很多公司尝试制作赛车游戏,但是由于其体验性不理想,大部分游戏都不成功.成功的游戏比如有腾讯的卡丁车,还有天天 ...

  7. Unity创作赛车游戏的四款插件

    本文,我们将介绍其中4款:Racing Game Starter Kit.GeNa 2 .NWH Vehicle Physics.Curvy Splines. Racing Game Starter ...

  8. 技术干货:赛车游戏中最短路径和最小曲率路径算法

    转自:https://www.gameres.com/492096.html 最近参与了一个非常蛋疼的业余时间小项目:给定赛道和赛车模拟程序,求赛车跑完赛道的最快的办法.对于这个问题,我一开始的想法是 ...

  9. 使用Unity3D 自主实战开发的赛车游戏实例,关键点记录 (一)之赛车游戏总体介绍

    我之前一直在做C# 的Winform多媒体软件开发.从去年十一月份开始转型自学Unity3D.发现对这个领域.这个方向更为喜爱.在经过两个多月的跟书自学.跟游戏实例教程练习之后,决定自己完成一款游戏, ...

最新文章

  1. 企业如何提升管理能力,让企业协作更顺畅?
  2. 设计模式 -- 装饰者模式
  3. boost::mpl模块实现transform相关的测试程序
  4. 【51nod】1239 欧拉函数之和 杜教筛
  5. mysql的本地id可以随便设置马_MySQL中的账号与权限管理
  6. java 时钟 算法分析_java实现时钟方法汇总
  7. leetcode 341. 扁平化嵌套列表迭代器(dfs)
  8. java怎么弄redis,java怎么使用redis
  9. java 执行 cd_java执行cd命令
  10. python判断天数_python判断输入日期是该年的第几天
  11. Nginx + PHP + mysql CGI的一个可能的安全漏洞
  12. 50 years, 50 colors HDU - 1498(最小点覆盖或者说最小顶点匹配)
  13. LaTex的安装和使用
  14. 切底删掉顽固360的.dll文件、删除删不掉的一些文件
  15. 你知道全中国有多少个火车站吗?
  16. java贴图技术坦克世界_坦克世界游戏图像设置技巧 如何提高FPS
  17. F - 喜欢砍竹子的黑泽明
  18. Google Gmail十年回首
  19. 从Sklearn Bunch对象到Pandas DataFrame对象的转换
  20. 基于Java的超级玛丽游戏的设计与实现(含源文件)

热门文章

  1. Oracle分区表3种重建方法(基础原理、优点、类型、表分区总结)----(实战)
  2. 【经验贴】22东华大学计算机专硕854考研上岸经验贴
  3. linux rm 文件找回_linux下执行rm -rf命令后如何恢复
  4. 光伏并网柜综合监测方案
  5. Eclipse Theia 揭秘之启动流程篇
  6. 基于arduino下的巡线小车
  7. 自动售卖系统开发系列——人脸识别自动售卖机二代ChingTom
  8. python中的异常处理try/except/finally/raise
  9. 如何利用阿里妈妈(alimama)赚零花钱
  10. 数据结构---------层次建树(完全二叉树)