首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >目标不会破坏或减去10的生命值

目标不会破坏或减去10的生命值
EN

Stack Overflow用户
提问于 2020-07-11 22:46:13
回答 1查看 26关注 0票数 0

我在编程时遇到了一个问题,敌人的生命值不会下降,更不用说破坏gameObject了。

下面是这两个脚本的代码:

脚本1

代码语言:javascript
复制
using UnityEngine;

public class target : MonoBehaviour
{
    public float health = 50f;

    public void takeDamage(float amount)
    {
        amount -= health;
        if(health <= 0)
        {
            Die();
        }
    }
    void Die()
    {
        Destroy(gameObject);
    }
}

脚本2

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using UnityEngine;


public class Gun : MonoBehaviour
{

    public float damage = 10f;
    public float range = 100f;

    public Camera fpsCam;
    // Update is called once per frame
    void Update()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            Shoot();
        }
    }

    void Shoot()
    {
        RaycastHit hit;
        if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range))
        {
            Debug.Log(hit.transform.name);
            target target = hit.transform.GetComponent<target>();
            if (target != null)
            {
                target.takeDamage(damage);
            }
        }
    }
}

应该发生的情况是,目标对象应该在生命值为0时销毁该对象。

请帮帮我

EN

回答 1

Stack Overflow用户

发布于 2020-07-11 23:00:47

你把你的操作数搞混了。

左边的操作数是分配给的操作数。

代码语言:javascript
复制
amount -= health;

将结果赋值给amount而不是health

交换操作对象:

代码语言:javascript
复制
health -= amount;

赋值总是在左边。

目前所发生的一切就是你传入的数量正在被减去健康值,然后被丢弃。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62850618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档