unity-game-engine - 敌人逻辑错误

标签 unity-game-engine unityscript

我正在按照教程在 Unity 中制作游戏,但我的 JavaScript/UnityScript 遇到了一个特殊问题:

#pragma strict

var Health = 100;

function ApplyDamage (TheDamage : int)
{
    Health -= TheDamage;

    if(Health <= 0)
    {
        Dead();
   }
}

function Dead()
{
    Destroy (gameObject);
}

这是我针对敌人游戏对象的脚本,但是,尽管我有近战系统的逻辑,你必须点击他两次然后他就会死,但它不起作用,每当我的玩家角色走进敌人时无需点击即可自动销毁。

我也会在这里发布我的近战系统:

#pragma strict

var TheDamage : int = 50;
var Distance : float;
var MaxDistance : float = 1.5;

function Update () 
{
     if (Input.GetButtonDown("Fire1"))

         var hit : RaycastHit;
         if (Physics.Raycast (transform.position, transform.TransformDirection(Vector3.forward), hit))
         {
             Distance = hit.distance;
             if (Distance < MaxDistance)
             (
                  hit.transform.SendMessage("ApplyDamage", TheDamage, SendMessageOptions. DontRequireReceiver)     
             );

   }
}

有人可以帮我解决这个问题吗?这似乎是一个随机错误。

最佳答案

您为近战系统发布的代码缺少第一个 if 语句的大括号 {},导致它仅在鼠标悬停时执行 var hit : RaycastHit;单击,并在每次调用 Update 时执行主体的其余部分。

关于unity-game-engine - 敌人逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25276003/

相关文章:

c# - 禁用设置驻留在预制件中的变换的父级以防止数据损坏

java - unity firebase 数据库检索数据

c# - 如何知道图像用于哪个预制件

unity-game-engine - Unity LookAt 2d 等效项

iphone - Vuforia AR 按钮可以打开另一个 View 或应用程序吗?

unity-game-engine - 如何输出Unity3D调试日志?

java - Unity3D - 从 Android 调用静态方法

unity-game-engine - Unityscript - 这是什么样的声明?

FFMpeg 连续实时图像到视频编码

audio - 如何正确使用getComponants获取音频数组?