//MyScriptA.cs
using UnityEngine;
using System.Collections;
public class MyScriptA : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnGUI()
{
if (GUI.Button(new Rect(10, 10, 50, 30), "Click"))
{
GameObject cube = GameObject.Find("MyCube");//访问游戏对象方法1:GameObject.Find
cube.transform.Rotate(10, 10, 20);
}
if (GUI.Button(new Rect(10, 50, 50, 30), "Click"))
{
GameObject cube = GameObject.FindWithTag("Red");//访问游戏对象方法二:GameObject.FindWithTag
cube.transform.Rotate(10, 10, 20);
}
if (GUI.Button(new Rect(10, 90, 50, 30), "Rotate"))
{
GameObject.FindWithTag("Green").SendMessage("SetRotating", true);//访问其它脚本方法一:SendMessage
}
if (GUI.Button(new Rect(10, 130, 50, 30), "Stop"))
{
GameObject greenBox = GameObject.FindWithTag("Green");
greenBox.GetComponent<MyScriptGreen>().SetRotating(false);//访问其它脚本方法二:GetComponent<>(),这种更好
}
if (GUI.Button(new Rect(10, 170, 50, 30), "加速"))
{
GameObject greenBox = GameObject.FindWithTag("Green");
float speed = greenBox.GetComponent<MyScriptGreen>().RotationSpeed;
speed += 1.0f;
greenBox.GetComponent<MyScriptGreen>().RotationSpeed = speed;
}
}
}
//MyScriptGreen.cs
using UnityEngine;
using System.Collections;
public class MyScriptGreen : MonoBehaviour {
public float RotationSpeed = 1.0f;
private bool isRotating = false;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (isRotating)
{
transform.Rotate(RotationSpeed, RotationSpeed, RotationSpeed);
}
}
public void SetRotating(bool rotating)
{
this.isRotating = rotating;
}
}