文章目录

  • 一、前言
  • 二、导入地面素材
  • 三、制作地面预设
  • 四、使用脚本控制地面移动
  • 五、起始和结束位置
  • 六、复制多个地面预设
  • 七、运行效果


一、前言

嗨,大家好,我是新发,今天是大年初三,大家牛年快乐,牛气冲天。
我打算写一篇使用Unity制作像天天酷跑一样的游戏的教程,会按功能点分成多篇文章来讲,希望可以帮助一些想学Unity的同学。
注:我使用的Unity版本是2020.1.14f1c1。

unity 给指定物体 增加地面属性 unity怎么添加地面_地面

本节我将讲下如何制作地面,本节的效果:

unity 给指定物体 增加地面属性 unity怎么添加地面_酷跑_02

二、导入地面素材

将地面素材导入Unity中。

unity 给指定物体 增加地面属性 unity怎么添加地面_酷跑_03


在Unity中设置好Slice。

unity 给指定物体 增加地面属性 unity怎么添加地面_unity_04

三、制作地面预设

将其制作成预设。

unity 给指定物体 增加地面属性 unity怎么添加地面_酷跑_05


每个地面图片使用SpriteRenderer组件来渲染。

unity 给指定物体 增加地面属性 unity怎么添加地面_地面_06


添加一个BoxCollider2D碰撞体。

unity 给指定物体 增加地面属性 unity怎么添加地面_跑酷_07


如下:

unity 给指定物体 增加地面属性 unity怎么添加地面_酷跑_08

四、使用脚本控制地面移动

游戏中看起来是角色在跑,其实角色没有跑,是地面在跑,所以我们要写一个脚本来控制地面的移动。
创建一个Ground.cs脚本。
地面从起始位置移动到结束位置,到大结束位置后又立刻回到起始位置。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Ground : MonoBehaviour
{
    private Transform groundTranform;
    /// <summary>
    /// 地面移动的结束位置
    /// </summary>
    private Transform end;
    /// <summary>
    /// 地面移动的起始位置
    /// </summary>
    private Transform start;
    /// <summary>
    /// 地面的移动速度
    /// </summary>
    private float moveSpeed = 0.1f;

    // Start is called before the first frame update
    void Start()
    {
        groundTranform = transform;
        end = GameObject.Find("GroundEndPos").transform;
        start = GameObject.Find("GroundStartPos").transform;
    }

    // Update is called once per frame
    void Update()
    {
        if (groundTranform.position.x > end.position.x)
        {
            groundTranform.position -= new Vector3(moveSpeed, 0, 0);//往左移动
        }
        else//到达结束点
        {
            BackToStart();
        }
    }

    /// <summary>
    /// 回到起始点
    /// </summary>
    void BackToStart()
    {
        float yPosOffset = Random.Range(3, 20) * 0.1f; //随机高度偏移
        float xPosOffset = Random.Range(5, 15) * 0.1f; //随机水平偏移
        groundTranform.position = start.position + new Vector3(xPosOffset,  yPosOffset, 0);
    }
}

将脚本挂到ground预设上。

unity 给指定物体 增加地面属性 unity怎么添加地面_跑酷_09

五、起始和结束位置

创建两个空物体,分别命名为GroundStartPos和GroundEndPos作为起始位置和结束位置,如下:

unity 给指定物体 增加地面属性 unity怎么添加地面_跑酷_10


unity 给指定物体 增加地面属性 unity怎么添加地面_unity 给指定物体 增加地面属性_11

六、复制多个地面预设

复制多个地面预设,摆好它们的位置,使其覆盖屏幕,如下:

unity 给指定物体 增加地面属性 unity怎么添加地面_unity_12

七、运行效果

运行Unity,效果如下:

unity 给指定物体 增加地面属性 unity怎么添加地面_unity_13


加上角色和背景图,效果如下:

unity 给指定物体 增加地面属性 unity怎么添加地面_酷跑_02