[Unity]场景精灵之激光炮

本文介绍了如何在Unity中实现激光炮,包括发射间隔、动画控制和利用射线检测确定光柱长度的逻辑。通过调整射线起点、方向,以及监听射线碰撞来动态更新光柱的显示效果。
摘要由CSDN通过智能技术生成

一 说明

精灵名称:激光炮(laser)

功能:每间隔2s发射一次,发射时间持续1s。激光长度不固定,光柱自由射出后遇到阻挡则不再前进,即为长度。

样式:如下图


二 动画

1.说明 整个激光炮由四部分组成,炮身、炮口激光花、光柱、炮尾激光花。结构如下图,其中炮身是父节点,其余元素为子节点。主动画和逻辑控制脚本加到了炮身上(激光花的动画加在了炮口和炮尾)。打炮的动画状态机由两个子动画组成,分别是静止和播放。控制参数为state。


2.代码

所需变量

    private Animator animator;
    // 发射动画持续时间
    public float LaunchingTime = 1.0f;
    // 持续间隔
    public float IntervalTime = 2.0f;
    // 一个发射周期的时间 = IntervalTime + LaunchingTime
    private float cycleTime;
    // 临时累计时间,一个周期结束后清零
    private float AccTime =-1.0f;

逻辑处理

void Start() {
        animator = gameObject.GetComponent<Animator> ();
        cycleTime = IntervalTime + LaunchingTime;

}

    void Update() {
      
        if (state =&#

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值