Ich habe vor kurzem angefangen zu lernen, in C# für Unity zu programmieren; Im folgenden Skript wird versucht, ein Objekt (Feind) basierend auf der Position der Maus zu aktivieren und zu deaktivieren.C# Einheit If-Anweisung Logik
Das Problem ist, der Code funktioniert gut in die Aktivierung des Objekts, aber ich kann nicht herausfinden, wie Sie es deaktivieren, sobald es aktiviert ist, so dass das Objekt erscheint und verschwindet, wie die Maus hin und her - rein und raus der Reichweite. Bitte lassen Sie mich wissen, wenn Sie eine Lösung haben. Vielen Dank!
using UnityEngine;
using System.Collections;
public class Paddle : MonoBehaviour
{
public GameObject enemy;
// Use this for initialization
void Start()
{
enemy.SetActive(false);
}
// Update is called once per frame
void Update()
{
Vector3 paddlePos = new Vector3(8f, this.transform.position.y, 0f);
float mousePosInBlocks = Input.mousePosition.x/Screen.width * 16;
paddlePos.x = Mathf.Clamp(mousePosInBlocks, 6f, 8f);
this.transform.position = paddlePos;
if (mousePosInBlocks < 6f)
{
print("1");
}
else if (mousePosInBlocks <= 6.5f)
{
print("2");
enemy.SetActive(true);
}
else if (mousePosInBlocks <= 7.5f)
{
print("3");
}
else
{
print("4");
}
}
}
Behinderte bleiben ' Die Methode start() 'wird automatisch aufgerufen, wenn die Szene mit dem Objekt beginnt. 'Update()' wird in jedem Frame ausgeführt. Du deaktivierst den Feind, wenn die Szene (oder das Objekt) erstellt wird. Wenn mousePosInBlocks gleich oder kleiner als 6,5 ist, aktivierst du es. Sie könnten ein 'Debug.Log (mousePosInBlocks)' machen, wenn Sie sich über den Wert von mousePosInBlocks nicht sicher sind – Maakep