看了一些别人总结的得到组件的方法,很详细,但是初学者会看得眼花缭乱(我就是),这里给出最常用的得到游戏组件的两种方法。这里都以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的脚本赋值,不然会报空指针异常