-
我创建了一个
GameObject
并将其命名为"sensor"。然后,我向传感器添加了一个BoxCollider
和一个脚本(script_sensor(。 -
然后我创建了另一个
GameObject
并将其命名为"出租车"。我在出租车中添加了一个脚本 (script_taxi(,并在脚本中创建了一个公共Collider2D
。 -
然后我将传感器
GameObject
分配给出租车的公共Collider2D
。 -
现在,我想从
script_sensor
访问script_taxi
。
基本上,我如何从script_sensor
(框2(访问script_taxi
(图像上的框1(?
检查图像以更好地理解。
Ps:当我向出租车预制件发送垃圾邮件时,每个传感器对象都应该能够找到自己的容器游戏对象(出租车(。
如果你想从script_sensor
访问script_taxi
,你需要某种类型的引用来script_taxi
script_sensor
。然后,您可以使用GetComponent
.您也可以使用GameObject.Find
的变体,但是这些调用可能很昂贵。
public class script_sensor : MonoBehavior {
[SerializeField]
private GameObject taxi;
private script_taxi taxiScript;
void Start() {
taxiScript = taxi.GetComponent<script_taxi>();
}
}
此外,建议遵循 C# 命名约定。
script_sensor => Sensor
script_taxi => Taxi
public Collider2D col; => [SerializeField] private Collider2D col;
或者使用 GameObject.Find(( 查找出租车 GameObject,如下所示:
script_taxi taxi;
void Awake()
{
taxi = GameObject.FindWith("taxi").GetComponent<script_taxi>();
}