Unity访问游戏对象和其它脚本的方法

//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;
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值