Unity制作赛车游戏(无尽版)源码解析 和 Whell joint 2D组件的使用
发布日期:2021-06-29 19:13:43 浏览次数:4 分类:技术文章

本文共 1617 字,大约阅读时间需要 5 分钟。

小游戏的开始界面:
 
感兴趣的同学可以按如下方式下载素材和工程源码
 

。没有积分的同学,扫描主页左侧二维码或 V信搜 " 开发同学留步",回复“ 赛车” 获取资源。

根据车轮的转动,使小车运动,,,
使用2D Sprite创建出入下图所示关系,并附上图片调整位置:
 
为小车,和车轮增加如下的属性面板
 
CarMove脚本在后面,,没有声音面板,需要就加AudioSound组件,就好了,大家注意面板上的属性赋值就可以了,,,
 
注意:whell Join 2D 属性面板的Connected Anchor 属性一定调整到车轮的中心点位置,,这里的物理材质我使用的摩擦力大小时0.5,,,车的rigidbody赋值在车轮的Whell Joint 属性上,,勾选上Use Motor,调整各自的碰撞体;
 
CarMove脚本:
public class CarMove : MonoBehaviour {    public float speed = 10f;    //初速度    public WheelJoint2D leftWhell;  //车轮    public WheelJoint2D rightWhell;    public float phSpeed = 5.0f;  //平衡调整速度    public AudioSource carSound;  //获取组件以播放声音    public AudioClip runClip;   //开车时的音频剪辑    public AudioClip waitClip;      private Transform myTrans;  //自己的Transform    //给车轮加动力的    private JointMotor2D jmL,jmR;	void Start () {        //获取速度        jmL = leftWhell.motor;        jmR = rightWhell.motor;        myTrans = this.transform;    }		// Update is called once per frame	void Update () {        Move();    }    private void Move()    {        //获取输入        float ax = Input.GetAxis("Horizontal");        float ay = Input.GetAxis("Vertical");        //当前速度        jmL.motorSpeed = ax * speed;        jmR.motorSpeed = ax * speed;        //赋值        leftWhell.motor = jmL;        rightWhell.motor = jmR;        if(ay != 0)        {            //左右平衡赛车的角度            myTrans.Rotate(myTrans.forward, ay * phSpeed);        }      if ( ax != 0 ) //有移动变化量就不播放runClip        {            carSound.clip = runClip;            if(!carSound.isPlaying){                carSound.Play();            }        }else  //停下就不播放声音        {            carSound.Stop();        }    }}

转载地址:https://czhenya.blog.csdn.net/article/details/77929353 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C# 匿名方法和Lambda表达式
下一篇:Wheel Joint 2D 属性面板简介

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月18日 17时45分49秒