我从另一个脚本引用函数时遇到问题。我真的不知道该怎么做。我搜索了解决方案,但我不明白。 有人能说出我做错了什么吗?
第一个脚本[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);
}
}
答案 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>();