Unity3d Unity-项目面板中缺少子元素扩展按钮的预制
我一直在学习一门课程。在本课程中,添加了一个名为“路径(0)”的游戏对象,该游戏对象有三个子游戏对象(“航路点(0/1/2)”。在本教程中,玩家将父游戏对象“路径(0)”拖动到项目面板中名为“路径”的文件夹中,以创建一个预置。此预制件显示时带有一个用于展开它的手柄。然后,他展开该预置,以查看可以拖动到检查器中的子元素,如下所示(用红色框突出显示的展开按钮) 当我执行这些操作时,项目面板在“路径”预置上没有展开按钮(见下文) 为什么项目面板中的预制对象没有这些展开按钮 基本上,他所做的就是创建一个带有敌人预置的脚本组件。而childobject“航路点”是场景中敌人移动的标记。我在youtube上上传了教程的一部分,一旦问题解决,我会将其删除。如果youtube没有删除它。请帮助我完成一半的教程 公共类对抗:单一行为{ [序列化字段]列出航路点; [SerializeField]浮点移动速度=2f; int waypointIndex=0Unity3d Unity-项目面板中缺少子元素扩展按钮的预制,unity3d,unity-container,unity3d-2dtools,Unity3d,Unity Container,Unity3d 2dtools,我一直在学习一门课程。在本课程中,添加了一个名为“路径(0)”的游戏对象,该游戏对象有三个子游戏对象(“航路点(0/1/2)”。在本教程中,玩家将父游戏对象“路径(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);
}
}
void Start()
{
transform.position=waypoints[waypointIndex].transform.position;
}
//每帧调用一次更新
无效更新()
{
Move();
}
私人空位移动()
{
if(航路点索引<航路点计数-1)
{
var targetPosition=waypoints[waypointIndex].transform.position;//这就是我们要去的地方
var movementThisFrame=moveSpeed*Time.deltaTime;//这就是我们想要达到的速度
transform.position=Vector2.moveToward(transform.position,targetPosition,movementThisFrame);
if(transform.position==targetPosition)
{
waypointIndex++;
}
}
其他的
{
摧毁(游戏对象);
}
}
这一定是因为你没有相同的统一版本 只需双击Path0,它就会打开它。在Hierarchy选项卡中,您将看到资产及其元素。 如果将Path0拖回场景,其子对象也将出现 这是因为您不应该将子资产拖离其父资产。 我不知道它在你的教程中是如何使用的,但是如果需要的话,你也可以通过将它拖到文件夹中(双击Path0之后)来制作一个子预置 编辑: 我真的不知道你能做些什么来达到完全相同的情况,但这里有另一种方法: -创建标记“航路点”,并为航路点0、航路点1和航路点2设置此标记(在您的资源中,或在创建之前) -在EnemyPathing.cs的开始方法中添加以下内容:
this.waypoints = new List<Transform>();
foreach(GameObject g in GameObject.FindGameObjectsWithTag("waypoint"))
{
waypoints.Add(g.transform);
}
this.waypoints=新列表();
foreach(GameObject.FindGameObjectsSwithTag(“航路点”)中的GameObject g)
{
航路点。添加(g.变换);
}
因此,它将自动添加您的航路点,即使您的场景中有多于或少于3个航路点。我已用一些信息更新了问题,可能会有所帮助。如果您能帮助我,我将不胜感激。谢谢。非常感谢。我会尝试让您知道进展情况。再次非常感谢。