如何在 Unity 中通过单击手机屏幕来更改相机? (安卓)
How to change cameras by a single touch on my phone's screen in Unity? (Android)
这是我编写的代码,但是当我在我的 phone 上测试它时,它冻结并且没有任何反应(当我通过 Remote4 连接到我的 phone 时,在编辑器模式下也是如此)所以我想要的是随时通过触摸屏幕来更换相机。我应该怎么做?
当我只想在触摸屏幕时将相机从 mainCam 更改为 topCam,当我用手指松开屏幕时它又从 topCam 变回 mainCam,这是怎么回事?
此代码进入 Update()
while (Input.touchCount > 0) {
for (int i = 0; i < Input.touchCount; i++) {
if (Input.GetTouch (i).phase == TouchPhase.Ended && Input.GetTouch(i).tapCount == 1) {
if (mainCam.enabled){
mainCam.enabled = false;
topCam.enabled = true;
} else {
mainCam.enabled = true;
topCam.enabled = false;
}
}
}
}
问题
你的循环是问题所在,if
s 有一些奇怪的逻辑。
触摸并按住解决方案
void Update()
{
if(Input.touchCount > 0)
{
if(Input.GetTouch(0).phase == TouchPhase.Began)
{
topCam.enabled = true;
mainCam.enabled = false;
}
if(Input.GetTouch(0).phase == TouchPhase.Ended
|| Input.GetTouch(0).phase == TouchPhase.Canceled)
{
mainCam.enabled = true;
topCam.enabled = false;
}
}
}
标签切换解决方案
void Update()
{
if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
{
topCam.enabled = !topCam.enabled;
mainCam.enabled = !mainCam.enabled;
}
}
这是我编写的代码,但是当我在我的 phone 上测试它时,它冻结并且没有任何反应(当我通过 Remote4 连接到我的 phone 时,在编辑器模式下也是如此)所以我想要的是随时通过触摸屏幕来更换相机。我应该怎么做?
当我只想在触摸屏幕时将相机从 mainCam 更改为 topCam,当我用手指松开屏幕时它又从 topCam 变回 mainCam,这是怎么回事?
此代码进入 Update()
while (Input.touchCount > 0) {
for (int i = 0; i < Input.touchCount; i++) {
if (Input.GetTouch (i).phase == TouchPhase.Ended && Input.GetTouch(i).tapCount == 1) {
if (mainCam.enabled){
mainCam.enabled = false;
topCam.enabled = true;
} else {
mainCam.enabled = true;
topCam.enabled = false;
}
}
}
}
问题
你的循环是问题所在,if
s 有一些奇怪的逻辑。
触摸并按住解决方案
void Update()
{
if(Input.touchCount > 0)
{
if(Input.GetTouch(0).phase == TouchPhase.Began)
{
topCam.enabled = true;
mainCam.enabled = false;
}
if(Input.GetTouch(0).phase == TouchPhase.Ended
|| Input.GetTouch(0).phase == TouchPhase.Canceled)
{
mainCam.enabled = true;
topCam.enabled = false;
}
}
}
标签切换解决方案
void Update()
{
if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
{
topCam.enabled = !topCam.enabled;
mainCam.enabled = !mainCam.enabled;
}
}