You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实例化对象动画失效:2D射击触发开门功能异常排查

问题解决方案

核心问题分析

  • TargetScript的全局标签查找错误:GameObject.FindGameObjectWithTag("BottomPipe")会返回场景中第一个匹配标签的对象,导致所有克隆的目标物体都绑定到第一个生成的BottomPipe,后续克隆的BottomPipe根本没被正确关联。同时每帧执行anim.enabled = false会持续干扰动画状态。
  • 预制体动画初始化问题:specialPipe预制体的Animator默认可能处于播放开门动画的状态,克隆后未正确重置到初始关闭状态。

具体修改方案

1. 修正TargetScript

移除错误的全局查找逻辑,直接获取当前specialPipe下的BottomPipe Animator:

using UnityEngine;

public class TargetScript : MonoBehaviour
{
    private Animator anim;

    void Awake()
    {
        // 获取当前specialPipe子物体中的BottomPipe Animator(根据你的层级结构调整)
        // 方式一:通过根物体查找子物体
        anim = transform.root.GetComponentInChildren<Animator>(true);
        // 方式二:如果TargetScript和BottomPipe同属一个父物体,用父物体查找
        // anim = transform.parent.Find("BottomPipe").GetComponent<Animator>();
        
        // 初始化动画到关闭状态
        anim.Play("DoorClosed", -1, 0f); // 替换为你的初始关闭状态名
        anim.enabled = false;
    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
        anim.enabled = true;
        anim.Play("DoorOpen"); // 替换为你的开门动画状态名
        Destroy(gameObject);
    }
}

2. 修正PipeSpawnScript

克隆specialPipe后,确保动画重置到初始状态:

void spawnPipe()
{
    float lowestPoint = transform.position.y - heightOffset;
    float highestPoint = transform.position.y + heightOffset;
    float randomNumber = Random.Range(0, 10);

    if(randomNumber < 2)
        Instantiate(pipe, new Vector3(transform.position.x, Random.Range(lowestPoint, highestPoint), 0), transform.rotation);
    else
    {
        GameObject test = Instantiate(specialPipe, new Vector3(transform.position.x + 10, Random.Range(lowestPoint, highestPoint), 0), transform.rotation);
        Animator anim = test.GetComponentInChildren<Animator>();
        // 强制重置动画到初始关闭状态
        anim.Play("DoorClosed", -1, 0f); // 替换为你的初始关闭状态名
        anim.enabled = false;
    }
}

额外注意事项

  • 确保Animator Controller中存在DoorClosed(初始关闭)和DoorOpen(开门)两个状态,且状态切换逻辑正确。
  • 移除TargetScript中原有的Update方法,避免每帧错误修改Animator状态。

内容的提问来源于stack exchange,提问作者Daralela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 15:26:05