我有一个名为'Player'的GameObject和一个名为'FirePoint'的GameObject:
此外,我还编写了一个非常基本的c#脚本“武器”:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Weapon : MonoBehaviour
{
public Transform firePoint;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
我将脚本拖到Player GameObject上,现在它已显示在检查器中。在脚本中,我要使用Player中的FirePoint。我知道的唯一方法是将FirePOint拖动到占位符中:
我想避免手动拖放,因为我想在游戏过程中使用自己的FirePoint生成新的玩家。如何以编程方式做到这一点?我找不到任何教程(也许是因为我不知道如何搜索它),所以我也很高兴拥有指向一个可解决该问题的简单教程的链接。
您可能正在考虑使用预制件和instantiating them at runtime。
Unity的Prefab系统允许您创建,配置和存储完整的GameObject及其所有组件,属性值和子GameObjects作为可重复使用的资产。预制资产充当模板,您可以从中创建新的预制实例在场景中。
Prefabs允许您将GameObject构建为模板,并在运行时创建其副本。实例化对象时,它会在代码中发生,并且可以在代码本身内分配。您可以一次在播放器预制件中分配firePoint,并且每次实例化或克隆预制件时,都会创建并分配自己的firePoint。