【发布时间】:2020-11-29 18:36:55
【问题描述】:
我想根据光线投射是否击中特定游戏对象来创建对游戏对象实例的引用。在这种情况下,它被称为“资源”。单击游戏对象后,我想创建一个 ResourceSource 类型的对象,该对象包含该特定游戏对象的所有变量和方法。
例如,我单击游戏对象。创建了一个变量
ResourceSource resource = hit.collider.gameObject.GetComponent<ResourceSource>();
显然,我不能只创建一个新对象,因为它只是一个副本,所以如果我对游戏对象进行任何更改,原始对象不会受到影响。
ResourceSource 类
public class ResourceSource : MonoBehaviour
{
public ResourceType type;
public int quantity;
public UnityEvent onQuantityChange;
Cooldown cooldown;
public Vector3 GetPositon()
{
return gameObject.transform.position;
}
}
我要创建引用的方法
void CheckIfResource(RaycastHit hit)
{
if (hit.collider.gameObject.tag == "Resource")
{
//Want to create something like this
ResourceSource resourcePosition = hit.collider.gameObject.GetComponent<ResourceSource>();
}
}
对于统一来说还是有点新,所以任何帮助表示赞赏:)
【问题讨论】: