第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

區(qū)分?jǐn)橙说纳鋸椇陀脩舻纳鋸?/h1>

我有一個(gè)發(fā)射射彈來(lái)傷害敵人的用戶。盡管有些敵人擁有自己的射彈來(lái)傷害玩家。它們都來(lái)自相同的射彈腳本。問(wèn)題是當(dāng)用戶升級(jí)他的射彈(使用游戲內(nèi)貨幣)時(shí)。用戶和敵人的射彈都會(huì)升級(jí)。由于它來(lái)自同一腳本,因此它會(huì)更新DamageOnHit射彈的 ?,F(xiàn)在我的問(wèn)題是:我是否可以告訴我的腳本僅升級(jí)用戶的射彈,而不創(chuàng)建單獨(dú)的敵人射彈腳本?升級(jí)菜單代碼。正如您所看到的,我從射彈腳本升級(jí)了 DamageOnHit。這就是所有射彈受到更多傷害的方式。using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class UpgradeMenu : MonoBehaviour{    [SerializeField]    private Text accuracyText;    [SerializeField]    private Text speedText;    [SerializeField]    private Text damageText;  [SerializeField]  private Weapon weapon;  [SerializeField]  public Projectile projectile;  [SerializeField]  private Player player;  [SerializeField]  private int upgradeCost = 50;    void start ()    {    }    void OnEnable()    {        UpdateValues();    }    void UpdateValues ()    {    }    public void UpgradeArmor ()    {      Health.maxHealth += 2;    ScoreManager.Score -= upgradeCost;      UpdateValues();    }    public void UpgradeSouls ()    {      EnemySlime.ScoreOnDeath += 1;      EnemySkeleton.ScoreOnDeath += 1;    //  ScoreManager.Score -= upgradeCost;      UpdateValues();    }    public void UpgradeDamage ()    {      Projectile.DamageOnHit += 1;    //  ScoreManager.Score -= upgradeCost;      UpdateValues();    }}
查看完整描述

3 回答

?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

在您想要實(shí)現(xiàn)的目標(biāo)中,您希望避免靜態(tài)字段。您應(yīng)該能夠使用以下內(nèi)容:


player.projectile = new  Projectile();

player.projectile.DamageOnHit = 5;


enemy.projectile = new  Projectile(); 

enemy.projectile.DamageOnHit = 1;

希望這可以幫助


查看完整回答
反對(duì) 回復(fù) 2023-08-20
?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊

這是一個(gè)更好的解決方案,但它確實(shí)意味著您總共需要 3 個(gè)類(lèi)。1 個(gè)基類(lèi)保存標(biāo)準(zhǔn)射彈邏輯,另外 2 個(gè)類(lèi)用于繼承射彈基類(lèi),用于玩家和敵方射彈。

還有一種不同的方法可以做到這一點(diǎn)。您可以在彈丸類(lèi)中創(chuàng)建一個(gè)名為 ProjectileType 的枚舉,如下所示:


public Enum ProjectileType { PlayerProjectile, EnemyProjectile }

每當(dāng)您創(chuàng)建/實(shí)例化射彈時(shí),將此 ProjectileType 分配給projectileType 變量,如下所示:


private projectileType;


public Projectile(ProjectileType projectileType)

{

? ? this.projectileType = projectileType;

}

現(xiàn)在,每當(dāng)您升級(jí)射彈時(shí),您都可以檢查射彈是否屬于玩家類(lèi)型,如下所示:


if(projectileType == ProjectileType.PlayerProjectile)

{

? ? // Upgrade logic.

}


查看完整回答
反對(duì) 回復(fù) 2023-08-20
?
婷婷同學(xué)_

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊

我不確定這是否是最好的解決方案,因?yàn)檫@完全取決于您的游戲邏輯,但您可以創(chuàng)建兩類(lèi)射彈,一類(lèi)用于敵人,一類(lèi)用于玩家。這兩個(gè)類(lèi)都可以繼承自您的 Projectile 類(lèi)。

public class PlayerProjectil : Projectile {...}
public class AIProjectil : Projectile {...}

將 Projectile 類(lèi)函數(shù)設(shè)為虛擬。當(dāng)您需要不同的行為時(shí),可以在 PlayerProjectil 和 AIProjectil 中覆蓋它們。


查看完整回答
反對(duì) 回復(fù) 2023-08-20
  • 3 回答
  • 0 關(guān)注
  • 167 瀏覽

添加回答

了解更多

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)