所以我的游戏中有一个按钮,可以产生一个"塔"在给定的位置。塔产生时,正常运行,我可以使用我的拖动脚本拖动它。
我想知道如何在第一次产生塔时将Time.timeScale设置为0(仅用于该预制件)UNTILL我再次单击以设置它的位置。
在点击按钮后我想启用我的拖动脚本,设置位置,然后用鼠标单击再次禁用拖动脚本。这样我就可以确保玩家不会重新定位塔楼以获得额外的伤害。
using UnityEngine;
using System.Collections;
public class SpawnTower : MonoBehaviour {
public GameObject FrozenObject;
public Transform prefab;
public void OnClickSpawn()
{
for (int i = 0; i < 1; i++)
{
Instantiate(prefab, new Vector3(i * 2.0F, 0, 0), Quaternion.identity);
}
}
//this part from here on DOES NOT WORK! It says that the GetComponent<>() method that is not valin in the given context
public void OnClick()
{
if (Input.GetMouseButtonUp(0))
{
GetComponent<DragEnemy>.enabled = false;
}
}
}
请注意不起作用的部分
这是我的拖动脚本,由于某种原因无法被引用被禁用。
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(BoxCollider2D))]
public class DragEnemy : MonoBehaviour
{
private Vector3 screenPoint;
private Vector3 offset;
void OnMouseDown()
{
offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
}
void OnMouseDrag()
{
Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;
transform.position = curPosition;
}
}