Unity 得到游戏组件的常用的两种方法

看了一些别人总结的得到组件的方法,很详细,但是初学者会看得眼花缭乱(我就是),这里给出最常用的得到游戏组件的两种方法。这里都以MeshRenderer 组件为例

1.当脚本挂在当前游戏物体,需要得到当前游戏物体的组件时:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player1 : MonoBehaviour {

	private MeshRenderer meshRender;  //声明需要得到的组件
	public Material otherMaterial;  //声明一个材质,在Unity界面进行赋值

	void Start () {
		meshRender = this.GetComponent<MeshRenderer> ();  //把该物体的组件赋值到声明的变量中
	}
	void Update () {
		if (Input.GetKeyDown (KeyCode.Z)) {  //如果按下了Z键
			meshRender.material = otherMaterial;   //更改材质
		}
	}
}

2.当挂本挂在一个游戏物体上,却要修改另一个游戏物体的组件时:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player2 : MonoBehaviour {

	public GameObject player1;  //声明需要得到的游戏物体,在Unity界面进行赋值
	public Material otherMaterial;  //声明一个需要更换的材质,在Unity界面进行赋值
	private MeshRenderer meshrenderer;  //声明需要得到的组件

	void Start () {
		meshrenderer = player1.GetComponent<MeshRenderer> ();  //得到Player1的MeshRenderer组件
	}
	void Update () {
		if (Input.GetKeyDown (KeyCode.Q)) {   //按下Q键
			meshrenderer.material = otherMaterial;  //就可以更换材质贴图
		}
	}
}
不要忘记给Player2的脚本赋值,不然会报空指针异常


猜你喜欢

转载自blog.csdn.net/qq_29412103/article/details/80923442