Unity制作赛车游戏(无尽版)源码解析 和 Whell joint 2D组件的使用
【摘要】
小游戏的开始界面:
感兴趣的同学可以按如下方式下载素材和工程源码
下载链接。没有积分的同学,扫描主页左侧二维码或 V信搜 " 开发同学留步",回复“ 赛车” 获取资源。
根据车轮的转动,使小车运动,,,
使用2D Sprite创建出入下图所示关系,并附上图...
小游戏的开始界面:
感兴趣的同学可以按如下方式下载素材和工程源码
下载链接。没有积分的同学,扫描主页左侧二维码或 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();
-
}
-
}
-
}
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/77929353
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)