Unity - 项目面板中缺少子元素扩展按钮的预制件

Posted

技术标签:

【中文标题】Unity - 项目面板中缺少子元素扩展按钮的预制件【英文标题】:Unity - Prefab with Sub-Elements Expansion Button Missing in Project Panel 【发布时间】:2021-01-05 23:06:34 【问题描述】:

我一直在关注一门课程。在本课程中,添加了一个名为“Path (0)”的 GameObject,该 GameObject 则具有三个子 GameObject(“Waypoint (0/1/2)”)。在教程中,这家伙将父游戏对象“Path (0)”拖到 Project 面板中名为 Paths 的文件夹中以创建预制件。这个预制件显示有一个手柄来扩展它。然后他展开这个 prefab 以查看可以拖入 Inspector 的子元素,如下图所示(展开按钮以红色框突出显示)

当我执行这些操作时,项目面板的“路径”预制件上没有展开按钮(见下文)

为什么我的项目面板中的预制对象没有这些扩展按钮?

基本上,他所做的就是用敌人预制件创建一个脚本组件。(附在下面)。子对象“航路点”是场景中敌人将移动的标记。我在youtube上上传了一部分教程,一旦问题解决我将删除。如果 youtube 没有删除它。请帮助我完成教程的一半。

https://youtu.be/NGpaHSmktic

公共类 EnemyPathing : MonoBehaviour [SerializeField] 列出航点; [SerializeField] 浮动 moveSpeed = 2f; int waypointIndex = 0;

void Start()

    transform.position = waypoints[waypointIndex].transform.position;


// Update is called once per frame
void Update()

    Move();


private void Move()

    if (waypointIndex < -waypoints.Count - 1)
    
        var targetPosition = waypoints[waypointIndex].transform.position; // this is where we go to
        var movementThisFrame = moveSpeed * Time.deltaTime; // this is how fast we want to go to
        transform.position = Vector2.MoveTowards(transform.position, targetPosition, movementThisFrame);

        if (transform.position == targetPosition)
        
            waypointIndex++;
        
    
    else
    
        Destroy(gameObject);
    

【问题讨论】:

【参考方案1】:

一定是因为你没有相同的unity版本。

只需双击 Path0 即可打开它。在 Hierarchy 选项卡中,您将看到资产及其元素。 如果将 Path0 拖回场景,它的子节点也会出现。

这是因为您不应该将子资产拖离其父资产。 我不知道它在您的教程中是如何使用的,但是如果需要,您也可以通过将其拖到文件夹中来制作一个子预制件(双击 Path0 后)。

编辑:

我真的不知道你可以做些什么来遇到完全相同的情况,但这里有另一种方法:

-创建标签“航点”并为航点0、航点1和航点2设置此标签(在您的资产中,或在创建之前)。

-在 EnemyPathing.cs 的 Start 方法中添加:

this.waypoints = new List<Transform>();
foreach(GameObject g in GameObject.FindGameObjectsWithTag("waypoint"))

    waypoints.Add(g.transform);

因此,它会自动添加您的航点,即使您的场景中的航点多于或少于 3 个。

【讨论】:

我已经用一些信息更新了这个问题,可能会有所帮助。如果您能帮助我,我将不胜感激。谢谢。 非常感谢。生病尝试让你知道它是怎么回事。再次感谢您。

以上是关于Unity - 项目面板中缺少子元素扩展按钮的预制件的主要内容,如果未能解决你的问题,请参考以下文章

使用 Typescript 在 Mongoose 中缺少子文档方法

Unity编辑器扩展——自动生成UI界面脚本

Unity编辑器扩展——自动生成UI界面脚本

Unity3d 4.6 GUI - 按钮单击脚本从预制中消失

在 Unity 4.6 中从 C# 脚本创建 UI 按钮,无需任何预制件 [重复]

unity编辑器扩展一批量生成图片预制