Unity 2D 发送 X 数量的“部队”,这些数量等于我通过光线投射或其他方式向特定目标投入的数量 [关闭]
Posted
技术标签:
【中文标题】Unity 2D 发送 X 数量的“部队”,这些数量等于我通过光线投射或其他方式向特定目标投入的数量 [关闭]【英文标题】:Unity 2D send out X amount of "troops" that are equal to the number I put in to a specific target with raycast or something [closed] 【发布时间】:2021-11-06 00:09:35 【问题描述】:我正在尝试创建一个简短的 2D 游戏,您可以在其中等待 x 时间来获得例如 50 个“部队”。现在这工作正常,但现在我需要一个脚本来检测我拥有的部队数量(在起点)并将它们发送出去,就像从起点到终点的小点一样,但不是一个接一个更像 5连续*10。
部队每秒钟都会用浮点数向上计数,所以我们可以使用它还是我需要其他的东西?
【问题讨论】:
【参考方案1】:TroopSpawner.cs
using UnityEngine;
public class TroopSpawner : MonoBehaviour
public GameObject troopPrefab;
public int troopCountPerSpawn = 5;
public float timeBetweenSpawnsInSeconds = 10;
private float _lastSpawnTime;
private void Update()
if (Time.time - _lastSpawnTime >= timeBetweenSpawnsInSeconds)
_lastSpawnTime = Time.time;
for (var i = 0; i < troopCountPerSpawn; i++)
Instantiate(troopPrefab);
使用检查器将一个部队单元的预制件放入“部队预制件”插槽中,它将起作用。
TroopUnit.cs
using UnityEngine;
public class TroopUnit : MonoBehaviour
public Vector3 direction;
public float speed;
private void Update()
transform.Translate(direction * speed * Time.deltaTime);
把这个脚本放到你的部队预制件上。然后它会移动。在检查器中调整方向和速度以查看不同的结果。
【讨论】:
这非常适合创建多个预制件。现在有没有办法使用新创建的预制件让它们从 a 点移动到 b 点?这样您就可以看到它们每隔 x 时间向特定方向移动一次? 是的,不过此时我建议您观看 Unity 的初学者教程,因为这些都是非常基本的问题。但我不想那样,所以我将编辑我的答案以包括你刚才问的内容。但是,我仍然建议观看教程! :) 是的,我会看一些初学者教程。很抱歉把你的空闲时间浪费在这些通常很简单的问题上。我刚开始使用 Unity,并没有真正找到我想要的东西,所以我尝试了很多小时,但没有得到我想要的结果。希望快点好起来。谢谢大佬!以上是关于Unity 2D 发送 X 数量的“部队”,这些数量等于我通过光线投射或其他方式向特定目标投入的数量 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Unity实现任意两点之间画一条直线——bresenham算法(直线的处理)
unity3d (2d!) - 相机以玩家为中心,但永远不会超过“地图”边界