【Unity学习第一天】打砖块实例学习

本文详细介绍了在Unity中实现一个基础游戏的过程,包括创建场景、使用预制物、编写子弹射击脚本和相机控制脚本。涵盖从基本射击到高级功能如子弹轨迹调整和枪口实体创建的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**

基本流程


**
0、实现一个小游戏,每次点击都会发射出一个子弹,对砖块进行打击,同时可以使用方向键控制镜头移动。
1、创建场景:基本都是unity内部的拖拖拽拽,砖块和子弹需要建立预制,当预制发生变动时,所有的实例都会同步。
2、创建脚本:

① 脚本可以理解为一个组件,需要注意脚本需要挂在正确的物体上。此处脚本需要挂在在camera上。
② 在脚本中定义一个GameObject变量,并在工程中将prefab赋值。

3、子弹射击脚本:主要用来实现子弹的射击。

① 检测相关输入:
    if(Input.GetMouseButtonDown(0)) 
② 实例化生成一个子弹:
    GameObject b = GameObject.Instantiate(bullet, transform.position, transform.rotation);
③ 给子弹一个射击的速度:
    Rigidbody rgd = b.GetComponent<Rigidbody>();
    rgd.velocity = transform.forward *speed;
    //Rigidbody的velocity和AddForce的区别。前者直接赋予速度,后者模拟受力。

4、相机位移脚本:

① 检测相关输入:
    float h = Input.GetAxisRaw("Hirizontal");
    float v = Input.getAxisRaw("Vertical");
② 将这个输入量转化成相机的位移:
    transform.Translate(new Vector(h,v,0) * Time.deltaTime *speed);

变化1


**
0、原例中子弹前行的方向始终是camera的forward方向,将子弹的前行路线重新定义为相机到鼠标点击的位置。
1、需要在射击的脚本中进行修改:

//获取从相机到书标点击位置的射线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePostion);

//子弹前进的方向为射线的方向
rgd.velocity = ray.direction * speed;

变化2


**
0、在变化1的基础上,在场景中创建一个枪口实体,每次点击,子弹均从枪口射出,并射向鼠标所指的方向。
1、首先创建枪口,并将shoot代码从相机上移除,挂在在枪口上。移动脚本仍然控制相机,所以保持不变。
2、朋友提供了一个方法,通过射线碰撞检测的方法,先得到鼠标的触碰点,然后再计算从枪口发射到触碰点的射线。首先需要添加一个Plane面,将其和砖块的正面对齐,代码如下:

Ray ray = Camera.main.ScreenPointToRay(Input.mouseposition);
RaycastHit hit;

//射线的碰撞检测,射线在无穷大(Mathf.Infinity)的方向上,第一个触碰到的点,将其信息保存到hit中
if(Physics.Raycast(ray, out hit, Mathf.Infinity)) {
    //Debug.DrawLine(ray.origin, hit.point, Color.red, 2);
    GameObject b = GameObject.Instantiate(bullet, transform.position, transform.rotation);
    Vector3 tff = hit.point - transform.position;

    Rigidbody rgd = b.GetComponent<Rigidbody>();
    rgd.AddForce(300 * tff);
}

算是知识点吧


**
1、在Edit->Project Settings->Input中可以查询到各种Axes参数X,获取输入的方式大致为:Input.getAxis(“X”)
2、Input.getAxisRaw(“”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值