Unity 2D:我的激光脚本卡在if语句上,我不知道为什么

时间:2015-01-18 12:33:37

标签: unity3d

我过去一天在2D平台游戏中制作激光。我已经让手臂完全跟随光标,但是在它自己无法工作的武器的脚本上。这是我的代码

using UnityEngine;
using System.Collections;

public class Weapon : MonoBehaviour {

public float fireRate = 0;
public float Damage = 10;
public LayerMask whatToHit;

float timeToFire = 0;
Transform firePoint;

// Use this for initialization
void Awake () {
    firePoint = transform.FindChild ("FirePoint");
    if (firePoint == null) {
        Debug.LogError ("No firePoint");
    }
}

// Update is called once per frame
void Update () {
    if (fireRate == 0) {
        if (Input.GetButtonDown ("Fire1")) {
            Shoot();
        }
    }
    else {
        if (Input.GetButton ("Fire1") && Time.time > timeToFire) {
            timeToFire = Time.time + 1/fireRate;
            Shoot();
        }
    }
}

void Shoot () {
    Debug.Log ("Works");
    Vector2 mousePosition = new Vector2 (Camera.main.ScreenToWorldPoint (Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y);
    Vector2 firePointPosition = new Vector2 (firePoint.position.x, firePoint.position.y);
    RaycastHit2D hit = Physics2D.Raycast (firePointPosition, mousePosition-firePointPosition, 100, whatToHit);
    Debug.DrawLine (firePointPosition, (mousePosition-firePointPosition)*100, Color.cyan);
    Debug.Log ("Works 2");
    if (hit.collider != null) {
        Debug.Log ("Work 3");
        Debug.DrawLine (firePointPosition, hit.point, Color.red);
        Debug.Log ("We hit " + hit.collider.name + " and did " + Damage + " damage.");
    }
}
}

void Shoot中的if语句不起作用。 void Shoot中的前两个调试消息显示在日志中,但if语句中的两个消息并不知道为什么。有人可以帮忙吗?

0 个答案:

没有答案