深圳Unity3D培训
达内深圳龙华中心

150-1322-7143

热门课程

【达内Unity3D教程】Unity3D脚本之间互相调用

  • 时间:2016-08-10
  • 发布:深圳Unity3D培训
  • 来源:达内新闻

Unity3D可以用脚本实现很多功能,基本上只要会C++,就可以参照Unity3D的脚本说明,编写脚本,不可谓不方便,虽然Unity3D脚本使用C#或者JavaScript,但是如果你会C++,相信C#难不到你。深圳unity3d培训(sz.unity3d.tedu.cn)专家就和大家说说Unity3D脚本之间互相调用。

Unity3D的对象可以添加很多脚本,脚本与脚本之间怎么联系呢,下面用个简单的例子说明下。

Unity3D脚本之间互相调用

例如一个场景中有3个对象,现在我想通过control对象控制pall_1和pall_2显示不同图片。(pall_1和pall_2是2个Cube)

对象pall_1和pall_2所做的是同一件事情,只是可能图片不同,所以我们可以给他们添加同一个脚本SetPhoto.cs,这个脚本所完成的就是更改图片,设置图片数组,设置对象的标签。

using UnityEngine;using System.Collections;

public class SetPhoto : MonoBehaviour {

//图片数组

public Texture [] photos;

//数组指针

private int index = 0;

//字符标签,用户控制填写

public string tag;

// Use this for initialization

void Start () {

//初始化对象的标签

gameObject.tag = tag;

//判定数组是否为空,不为空指定默认图片

if (photos.Length > 0)

renderer.material.mainTexture = photos[index % photos.Length];

else

Debug.Log("error!! Array is null!");

}

// Update is called once per frame

void Update () {

}

//提供外部调用的接口函数

public void SetPhotos()

{

//改变图片编号

index++;

if (photos.Length > 0)

renderer.material.mainTexture = photos[index % photos.Length];

else

Debug.Log("error!! Array is null!");

}

}

我们把脚本附加给pall_1和pall_2对象,就会像下面那样。


Unity3D脚本之间互相调用


Unity3D脚本之间互相调用

注意给每个对象设置不同标签,这样好找到对象。

PS:一定要先给场景增加标签,否则系统识别不出来的。


Unity3D脚本之间互相调用

点击Tag,里面有个add Tag,选择增加标签。


Unity3D脚本之间互相调用

增加需要的标签,然后给Control对象附加一个脚本,用它来控制那2个对象,脚本名:controls.cs。

using UnityEngine;using System.Collections;

public class controls : MonoBehaviour {

// 首先创建2个对象

private GameObject myobj;

private GameObject myobj2;

void Start () {

//获得不同标签的对象

myobj = GameObject.FindWithTag("wall_1");

myobj2 = GameObject.FindWithTag("wall_2");

}

// Update is called once per frame

void Update () {

//弹开F键要做什么

if (Input.GetKeyUp("f"))

{

//获得标签1附加的脚本对象

SetPhoto s = myobj.GetComponent();

//调用脚本的函数

s.SetPhotos();

}

if (Input.GetKeyUp("s"))

{

//获得标签2附加的脚本对象

SetPhoto s2 = myobj2.GetComponent();

//调用脚本的函数

s2.SetPhotos();

}

}

}

这个脚本实现的功能就是首先找到pall_1和pall_2对象,然后调用给他们附加的SetPhoto脚本中的SetPhotos方法,用来改变2个矩形显示不同的图片。

最后,欢迎你来学习我们的unity3d零基础入门教程,如果你对unity3d学习有任何疑问,请加入我们的学习交流群。

上一篇:【达内职场秀】刚入职场如何度过浮躁期?
下一篇:【达内职场秀】如何利用压力走上人生巅峰?

Unity3D 常用插件_深圳Unity3D培训

游戏开发中两种阴影的判断方法及工作原理_深圳Unity3D培训

游戏开发中动态资源加载的方式_深圳Unity3D培训

深圳Unity3D培训班:关键帧动画介绍 - 深圳达内

选择城市和中心
贵州省

广西省

海南省

台湾