[Investor Relations]  |  官方微博

Unity3D培训

美国上市公司 · 亿元级外企unity3D培训企业

  • 全国服务监督电话4001118989
  • Unity3D脚本之间互相调用

    发布:Unity3D培训  来源:Unity3D教程  时间: 2016年01月25日

  • Unity3D可以用脚本实现很多功能,基本上只要会C++,就可以参照Unity3D的脚本说明,编写脚本,不可谓不方便,虽然Unity3D脚本使用C#或者JavaScript,但是如果你会C++,相信C#难不到你。...

  • 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教程:Javascript的使用介绍

网站导航
2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56