unity基于C#脚本中不同类之间的调用 您所在的位置:网站首页 unity调用另一个脚本的变量 unity基于C#脚本中不同类之间的调用

unity基于C#脚本中不同类之间的调用

#unity基于C#脚本中不同类之间的调用| 来源: 网络整理| 查看: 265

1.第一种,被调用脚本函数为static类型,调用时直接用 脚本名.函数名(); 这种方法比较适用于调用字段、变量之类的。 举个简单的例子 在move类中定义的一个静态字段

public class move : MonoBehaviour { public static float Score; }

想在Bulect类中调用move类中的字段

public class Bulect : MonoBehaviour { void AddScore() { ++move.Score; } }

2.第二种方法:GameObject.Find(“脚本所在物体名”).SendMessage(“函数名”); 也可以利用寻找标签的方式。此种方法可以调用public和private类型函数 例如:在碰撞检测时调用其他类中的方法,就可以用这种方法

public class move : MonoBehaviour { public void Die() { } } void OnTriggerEnter2D(Collider2D other) { if(other.tag=="tank") //通过标签查找到游戏物体 { other.SendMessage("Die"); //通过SendMeMessage来调用 move类里面的Die方法 } }

**3.第三种方法: GameObject.Find(“脚本所在物体名”).GetComponent().函数名();**此种方法只可以调用public类型函数

例如:首先在A类中定义了一个Addscore方法,想在B类中调用

public class A : MonoBehaviour { public void AddScore() { } } public class B : MonoBehaviour { public A Score; void start() { GameObject ScoreObject = GameOBject . FindWithTag(“ A类所在游戏物体的标签 ”); Score=ScoreObject. GetComponent(); } void Update() { Score.AddScore(); //调用A类中的AddScore方法 } }

4.第四种方法:通过单例模式进行调用 在move类中定义一个单例模式,可以在其他类中通过单例模式进行调用move中的公共方法

public class move : MonoBehaviour { private static palyer _instance; public static palyer Instance { get { return _instance; } } void Awake() { _instance = this; } public void Die() { } }

注意:要将instance=this这样代码放在Awake函数中不要放在Start函数中:

public class Bulect : MonoBehaviour { void Update() { if(Life


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有