从另一个脚本引用函数

时间:2014-06-21 19:53:29

标签: c# function reference unity3d

我从另一个脚本引用函数时遇到问题。我真的不知道该怎么做。我搜索了解决方案,但我不明白。 有人能说出我做错了什么吗?

第一个脚本[dotykxd.cs]:

using UnityEngine;
using System.Collections;

 public class dotykxd : MonoBehaviour {


void Start()
{




    }
// Use this for initialization


// Update is called once per frame
void Update () {

    if(Input.touches.Length <=0)
    {

    }

    else{

        for(int i=0; i< Input.touchCount;i++)
        {
            if(this.guiTexture.HitTest(Input.GetTouch(i).position))
            {/*
                if(Input.GetTouch(i).phase == TouchPhase.Began)
                {
                    Camera.main.backgroundColor=Color.black;
                }*/

                if(Input.GetTouch(i).phase == TouchPhase.Ended)
                {
                    obrot obrotek= GetComponents<obrot> ();
                    obrot.obr();

                }


            }
        }

    }
      }
  }

另一个脚本[obrot.cs]

   using UnityEngine;
   using System.Collections;

 public class obrot : MonoBehaviour {
public float speed = 5f;


// Update is called once per frame
void Update () {

    obr ();


}

void obr ()
{
    transform.Translate(new Vector3(1,0,0) * speed * Time.deltaTime);
}
   }

1 个答案:

答案 0 :(得分:0)

要从另一个脚本调用函数,您需要引用该游戏对象附加的GameObject或脚本Component

如果你引用了GameObject,你可以像这样使用SendMessage

gameObjReference.SendMessage("NameOfFunction"); 

如果你有对脚本的引用,你可以像这样调用函数:

scriptReference.FunctionName();

然而,你的问题更大,你如何获得这些参考。

GameObject gameObjReference = GameObject.Find("Name of GameObject in Scene");

也就是说,你把游戏对象的名称,你在场景中称之为。

另一种方法类似。

ScriptName scriptReference = GameObject.Find("Name of GameObject").GetComponent<ScriptName>();