1 Star 17 Fork 3

SouthBegonia/UnityWorld

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

基本功能:实现WASD进行视角在XY轴方向的移动,其次按下鼠标左键产生子弹bullet对面前的砖块cube进行碰撞。

主界面: 主界面

运行情况: 运行情况 动态过程:

项目地址:BreakBricks

制作过程:

  1. 创建平面plane做场景的地面
  2. 创建砖块的预制体Cube,包含信息有
    • 碰撞体 Box Collider
    • 材质 Cube Material
    • 刚体 Rigidbody
  3. 复制砖块堆积创建墙壁 TotalCubes
  4. 对镜头Main Camera编写脚本 Short.csMovement.cs
    • Movement:键盘读取WASD值对视角进行XY轴的移动
    • Short:单鼠标左键按下即实体化子弹预制体 bullet,并且赋予初速度
  5. 至此实现基本功能,以下为其他可添加功能
    • 弹跳性:创建Physic Material材质,其中Bounciness属性即为弹性(0代表无弹力,1表示完全反弹),将其赋予ColliderMaterial即可实现
//Short.cs
using UnityEngine;

public class Short : MonoBehaviour
{
    public GameObject bullet;
    public float speed = 5;

    void Start()
    {}

    void Update()
    {
        //左键按下产生子弹
        if(Input.GetMouseButtonDown(0))
        {
            GameObject b = GameObject.Instantiate(bullet, transform.position, transform.rotation);
            Rigidbody rgd = b.GetComponent<Rigidbody>();
            rgd.velocity = transform.forward * speed;
        }
    }
}
//Movement.cs
using UnityEngine;

public class Movement : MonoBehaviour
{
    public float speed = 5;
    void Start()
    {}

    void Update()
    {
        float h = Input.GetAxis("Horizontal");  //x轴
        float v = Input.GetAxis("Vertical");    //y轴
        //Debug.Log(h);

        transform.Translate(new Vector3(h, v, 0) * Time.deltaTime * speed);
        //左右镜头移动速度1 m/s * speed
    }
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/southbegonia/UnityWorld.git
git@gitee.com:southbegonia/UnityWorld.git
southbegonia
UnityWorld
UnityWorld
master

搜索帮助