Unity3D-2D:将某个公共预制件的Time.timeScale设置为0直到定位?

时间:2016-02-26 14:32:33

标签: c# unity3d unityscript unity5 unity3d-2dtools

所以我的游戏中有一个按钮,可以产生一个"塔"在给定的位置。塔产生时,正常运行,我可以使用我的拖动脚本拖动它。

我想知道如何在第一次产生塔时将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;
    }
}

0 个答案:

没有答案