【发布时间】:2021-12-26 15:47:14
【问题描述】:
我有两种方法,PaintRed 和 PaintDefault。 我希望这两种方法交替 x 秒,当变量 _gm._playerHited 等于 true 时暂停 y 秒。我想在我的模型上获得红色闪烁效果。
我无法确定这一点。 我可能需要使用协程,但我还没有想出解决我的问题的方法。
using UnityEngine;
public class PaintModel : MonoBehaviour {
GameObject _player;
GameObject _model;
GameManagerScript _gm;
Color32[] objColor = new Color32[9];
private void Start() {
_player = GameObject.FindGameObjectWithTag("Player");
_model = GameObject.Find("Model");
_gm = GameObject.FindGameObjectWithTag("GM").GetComponent<GameManagerScript>();
GetColors();
}
private void Update() {
if (_gm._playerHited) {
}
}
void PaintRed() {
for (int i = 0; i < _model.GetComponent<SkinnedMeshRenderer>().materials.Length; i++) {
_model.GetComponent<SkinnedMeshRenderer>().materials[i].color = Color.red;
}
}
void PaintDefault() {
for (int i = 0; i < _model.GetComponent<SkinnedMeshRenderer>().materials.Length; i++) {
_model.GetComponent<SkinnedMeshRenderer>().materials[i].color = objColor[i];
}
}
void GetColors() {
for (int i = 0; i < _model.GetComponent<SkinnedMeshRenderer>().materials.Length; i++) {
objColor[i] = _model.GetComponent<SkinnedMeshRenderer>().materials[i].color;
}
}
}
【问题讨论】: