我是Unity新手,正在开发板球比赛。我有一个显示小队选择的屏幕。它显示了15个玩家的图像,其中我必须选择任何11个。为什么Update()不止一次地调用它自己?
我一直在列表中添加点击(选定)玩家。但问题是,当我点击一次播放器时,我的列表大小有时会变成4或5甚至更多。我的脚本如下:
using UnityEngine;
using System.Collections;
public class bear : MonoBehaviour {
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
//select();
if (Input.touchCount == 1)
{
Vector3 wp = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position);
Vector2 touchPos = new Vector2(wp.x, wp.y);
if (collider2D == Physics2D.OverlapPoint(touchPos))
{
Material newMat = Resources.Load("New Material", typeof(Material)) as Material;
gameObject.renderer.material = newMat;
PlayersManager.objPlayerList.Add(PlayersManager.setPlayerObject("Bear"));
countausplayer.countteam++;
}
}
}
}
请指导我在哪里出错了?为什么列表大小会自行增加?
多少帧,你呢? “更新每帧调用一次,它是帧更新的主要功能。”请参阅http://docs.unity3d.com/Manual/ExecutionOrder.html – 2014-09-01 12:50:16
这与您的问题没有直接关系,但我会将'Material newMat = Resources.Load(“New Material”,typeof(Material))作为材料;'出于你的更新,因为这是一个相当昂贵的操作。 '物质newMat'可以成为一个记忆,你可以在'Awake'中设置它。也许缓存渲染器变量。 – 2014-09-02 16:37:32