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!) - 相机以玩家为中心,但永远不会超过“地图”边界

纹理打包器和 2d 游戏精灵表创建

unity2d用上下左右移动人物的情况下,怎么把Y轴移动的值赋给Z轴(比如Y改变5,Z跟着改变8)

unity 2d 版的lookAt

在 Unity 2d 中使用坐标系和游戏屏幕?