unity3d 相关问题

Unity是一个跨平台的游戏引擎,内置IDE由Unity Technologies开发。 unity5标签是指Unity引擎代码的特定版本,如果您使用的是unity5特定版本的代码,请仅使用此标记

如何在C#中限制索引范围? [关闭]

我正在尝试从 .csv 文件中获取信息并将其一个接一个地发送到 Unity 中的着色器。 我想将10,000多个数组信息放入着色器但索引有限制并且何时...

回答 0 投票 0

rougelike 游戏中物品系统的结构[关闭]

我目前正在统一创建一个 rougelike 游戏,我现在正在为其创建一个项目系统。目前在我的架构中有一些实体可以有项目。这些实体也有统计数据和 w...

回答 0 投票 0

为什么 Resources.Load<GameObject>() 不能始终如一地工作?返回一个对象也是空错误。统一 2021 LTS

我有一本字典:Dictionary prefabPaths。这个预制件路径是一个简单的键值,它存储我已经在 Unity 中创建的预制件的文件路径。为了测试这个,我......

回答 0 投票 0

在 Unity2D 中生成 UI 对象时向前移动对象

我正在创建一个 flappy bird-game 作为启动项目来学习 Unity 的基础知识。 我创建了在开始游戏时产生的管道,这些管道总是在其他所有东西的前面产生,

回答 0 投票 0

Unity新的输入系统,检测按下了哪个键

在我的游戏中,我有六个法术。我不想为每个咒语创建一个动作来激活它。 使用旧的输入系统,我会创建一个类,该类的属性指定要按下哪个按钮...

回答 0 投票 0

为什么 oncollisionenter2d 在 vs code c# 中不起作用

为什么 oncollisionenter2d 方法在 vs 代码中不起作用,而我的智能正常工作,只有此方法和 ontriggerenter2d 不起作用 我想要一个解决方案

回答 0 投票 0

Unity 2D 中的巨大圆圈

我想在 Unity 2D 中制作一个行星大小的圆圈,并使用可以进入轨道的火箭。我最大的问题是,与 SpaceFlight Simulator 游戏不同,如果我将 Unity 中的圆圈放大 1000,它会...

回答 0 投票 0

如何在鼠标按钮上开火?

我正在尝试在 Unity 上做我的第一个平台游戏。并且弹丸有问题。我找到了一个教程,如何创建一个移动的射弹,但没有触发 Fire 按钮。可以改变...

回答 1 投票 0

Unity & glTFast - 无法使用 LoadGltfBinary 函数加载我的 GLTF 文件

我正在使用带有 glTFast 包的 Unity。 我在尝试加载 GLTF 文件时遇到问题。这是代码: 公共异步无效 SetModel(字符串路径){ 如果(!File.Exists(路径)){ 调试($“

回答 0 投票 0

Unity - MRTK 2.7.3 全息远程处理应用程序 - 声音来自电脑扬声器

我正在尝试向我的全息远程处理应用程序添加一些音频剪辑。但是,当我执行应用程序时,声音来自电脑扬声器。我想将 Hololens 2 的扬声器用于音频剪辑。我有

回答 0 投票 0

Unity 在使用图像参数时连接到 Dall-E API?

如何在 Unity C# 中使用 Dall-E 文本到图像 API 的图像和遮罩参数? 对于背景,类似以下的内容适用于提示等其他参数(GitHub 上的完整代码):

回答 1 投票 0

在unity3d中将一个游戏对象的孩子的位置设置为0,0,0

我有以下问题。我正在使用 SceneManager 将我的主角从一个场景传送到另一个场景。每当我传送他时,它都会传送到对象触发位置。 私人...

回答 0 投票 0

如何在 foreach 循环中访问字符控制器变量列表

嗨,所以我目前正在尝试将我的敌人 aggro bool 设置为 true,如果另一个敌人受到伤害。 //敌人列表 公共列表 敌人 = 新列表 Hi, so I'm currently trying to set my enemies aggro bool to true if another enemy takes damage. //list for enemies public List<CharacterController> enemies = new List<CharacterController>(); //variables for aggro range and aggressive check public float aggroRange; public bool isAggressive; int nearestTarget = 0; //cycling through player character list for (int i = 1; i < GameManager.instance.playerCharacters.Count; i++) { //if any of the player characters positions arent within our aggro range if (Vector3.Distance(transform.position, GameManager.instance.playerCharacters[nearestTarget].transform.position) > aggroRange) { //they are not aggressive isAggressive = false; // if non aggressive enemies health becomes lower than max health, they have taken damage if (GameManager.instance.activePlayer.currentHealth < GameManager.instance.activePlayer.maxHealth) { //|||| Figure out how to cylce through enemies and set them all to aggressive when one takes damage |||| foreach (CharacterController allies in enemies) { //solution 1 - setting larget aggro range so they aggro anyway //aggroRange = 20f; //isAggressive = true; //solution 2 - accessing the component on the script? //allies.GetComponent<AIBrain>().aggroRange = 20f; //allies.GetComponent<AIBrain>().isAggressive = true; } //set them as aggressive - Disables when fixed above logic isAggressive = true; } } //players are within AI aggro range else { //set them as aggressive isAggressive = true; } `敌人被正确添加到列表中,并试图在第二个 foreach 循环中循环遍历列表并设置它们具有侵略性。尝试过的解决方案在循环中被评论无济于事。 如果格式不好,我深表歉意,我是堆栈溢出的新手。` 使用事件通常是一种更有效和更有组织的方式来处理这种情况😁 实现此目的的一种方法是向您的 AIBrain 脚本添加一个事件,该事件将在该角色受到伤害时触发。然后,您可以订阅该事件,当事件被触发时,将所有订阅角色的 isAggressive 布尔值设置为 true。 在你的 AIBrain 脚本中,定义一个受到伤害的事件: 公共事件 Action OnTakeDamage; public void TakeDamage() { // take damage logic... // trigger the OnTakeDamage event OnTakeDamage?.Invoke(this); } 当敌人受到伤害时,你需要调用 TakeDamage() (所以无论你在哪里受到伤害,也调用它)。在您的 AIBrain 脚本中,为敌人列表中的每个敌人订阅 OnTakeDamage 事件: void Start() { // subscribe to OnTakeDamage event for each enemy in the enemies list foreach (AIBrain enemy in enemies) { enemy.OnTakeDamage += OnEnemyTakeDamage; } } void OnDestroy() { // unsubscribe from OnTakeDamage event for each enemy in the enemies list foreach (AIBrain enemy in enemies) { enemy.OnTakeDamage -= OnEnemyTakeDamage; } } void OnEnemyTakeDamage(AIBrain enemy) { // set isAggressive to true for all enemies foreach (AIBrain ally in enemies) { ally.isAggressive = true; } } 通过此实现,每当敌人受到伤害并触发 OnTakeDamage 事件时,将为所有订阅的敌人调用 OnEnemyTakeDamage 方法,将其 isAggressive 布尔值设置为 true。 让我知道这是否有效,或者您是否需要任何帮助! for (int i = 1; i < GameManager.instance.playerCharacters.Count; i++) { //if any of the player characters positions arent within our aggro range if (Vector3.Distance(transform.position, GameManager.instance.playerCharacters[nearestTarget].transform.position) > aggroRange) { //they are not aggressive //isAggressive = false; // if non aggressive enemies health becomes lower than max health, they have taken damage if (GameManager.instance.activePlayer.currentHealth < GameManager.instance.activePlayer.maxHealth) { //|||| Figure out how to cylce through enemies and set them all to aggressive when one takes damage |||| foreach (CharacterController allies in enemies) { //solution 1 - setting larget aggro range so they aggro anyway //aggroRange = 20f; //isAggressive = true; //solution 2 - accessing the component on the script? allies.GetComponent<AIBrain>().aggroRange = 20f; allies.GetComponent<AIBrain>().isAggressive = true; } //set them as aggressive - Disables when fixed above logic //isAggressive = true; isAggressive = false; } 在循环解决问题后将 isAggressive 移动到。不确定为什么。

回答 2 投票 0

无法构建统一项目

因为我不熟悉这类问题,所以我只能提供编译器错误,希望您知道它们的意思……感谢任何帮助; 在此处输入图像描述 我正在使用(我...

回答 1 投票 0

Android 上的 Unity FPS 更改 29/59

当您在 Android 上开始游戏时,fps 显示为 29.59(从几秒到 3-5 分钟),之后 fps 趋于平稳并稳定在 60(手机仅支持 60 赫兹)。还有,我...

回答 1 投票 0

如何在我的 unity AR 项目中使用动态阴影?

我正在尝试创建一个 AR 项目来使用相机放置家具。应用程序的阴影不会根据光线而改变。我需要对光有反应的动态阴影。 我用的是沙...

回答 1 投票 0

Tilemap 的网格在 Unity 中停止角色

当角色跳跃并跑到墙边时,他会在墙前停一个或多个方格,如果他不跳,他会不停地跑。当他停止时,他的对撞机不会与 tilemap 的对撞机发生碰撞。为什么他...

回答 0 投票 0

Unity transform.Translate(Vector3.forward);不起作用

我是 Unity 的新手,我正在通过 Unity 的“使用代码创建”教程进行学习。他们在这里说,我可以使用 transform.Translate(Vector3.forward);通过 Z 坐标移动对象的命令...

回答 3 投票 0

单击时在 Unity 中生成单个对象

我想在点击屏幕时生成一个游戏对象。我试过使用循环,但它仍然实例化了不止一次。 在这里我也使用了其他循环并尝试将其放入 S ...

回答 1 投票 0

如何从脚本和用户键盘移动发音

我正在尝试使用Unity制作一个由键盘上的命令控制的“机械臂”。 我的设计非常基础: 在

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.