30天轻松学会unity自制游戏-制作子弹

做完Player後先帮来上个简易武器吧,找到Player Bullet 0一样拖曳到场景,看是否需要改一个自己喜欢的名称,在子弹放上一个碰撞器Capsule Collider2D 选择Edit Collider改一下碰撞器大小跟子弹差不多即可,最後把Is Trigger给打勾(Is Trigger会把碰撞器=>触发器使用,物件基本上都会穿过,穿越过触发器程序就能在穿越的时机给於不同的方法.功能等….)
https://ithelp.ithome.com.tw/upload/images/20210908/20140598pq63x82HVf.pnghttps://ithelp.ithome.com.tw/upload/images/20210908/20140598Sw52YEGEzV.png
从新在子弹物件上开一个程序给他,这程序名称就直接取Bullet,一样点两下开启此程序
https://ithelp.ithome.com.tw/upload/images/20210908/20140598IockJK2FP5.png
给子弹一个标签,之後伤害时会使用到,右上角的Tag按▼选择Add Tag…在Tags有个+新增一个标签给子弹暂取PlayerBullet
https://ithelp.ithome.com.tw/upload/images/20210908/20140598wO5kL8FrRK.png
这程序目前就让子弹直直前进跟一段时间自我毁灭(如果不自我毁灭子弹就会一直存在,游戏只要没有转换场景,每一个子弹都会消耗一点资源,游戏会越玩越卡)

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

public class Bullet : MonoBehaviour
{
    private float speed = 5f;
    void Start()
    {
		//销毁(物件(没特别指定预设为自己),五秒後将执行)
        Destroy(gameObject, 5);
    }

    // Update is called once per frame
    void Update()
    {
		//位置的转换(三围向量的UP(0,1,0)*速度*时间.差量时间,世界座标为主)
		// deltaTime每台电脑的Time时脉,速度都不同deltaTime可以让每台电脑同一时脉,速度用
        transform.Translate(Vector3.up * speed * Time.deltaTime, Space.World);
    }
    
}

最後再把子弹制作成预置物,好让Player之後可以调用,左键点击Hierarchy里的Bullet往底下的Project拖曳到选定的资料夹放开,Bullet会变成蓝色,资料夹也会多一个Bullet的预置物
https://ithelp.ithome.com.tw/upload/images/20210908/20140598dFCpGkeZ6U.png


<<:  [Angular] Day8. Templates and Text interpolation

>>:  Ruby 实体变数(instance variable)

Day 26 - 当AI有了常识之後, 超越人类? -GAN(2)

常被用的GAN比喻,假钞制作(生成目标样本)需要详细研究被伪造钞种的特徵(训练样本数据的特徵),然後...

那些被忽略但很好用的 Web API / Drag & Drop

就喜欢拖拖拉拉 现在使用手机、平板来浏览网站的机会比起电脑来说,实在是多太多了,所以其实 Web ...

如何在 SQL Server AOAG 设定环境之下, 套用修补程序 (patching)?

DBABootcamp 相信大家可以在网路上找到许多文章说明如何在 AlwaysOn 可用性群组 (...

B+树索引实战篇-Part2(联合索引的扫描区间与边界条件)

此篇由於篇幅的关系为前文的连贯。 如没有看到前文请先去看看再来唷~ 前情提要-我们前面为了方便解释,...

[Day 5]新手村外的首战是史莱姆应该是定番吧

今天我们来完成Header,不过位置方面我是使用Tailwinds CSS,要花时间客制化位置,但我...