Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在玩家面前无限生成游戏对象_C#_Unity3d_Unity5 - Fatal编程技术网

C# 在玩家面前无限生成游戏对象

C# 在玩家面前无限生成游戏对象,c#,unity3d,unity5,C#,Unity3d,Unity5,我有一个“玩家”3D对象和一个“圆圈”3D对象。玩家已经可以一个接一个地向圆圈移动了 当按下空格键时,我需要在播放器前面随机生成圆圈,例如按下空格键,然后生成一个圆圈,再次按下空格键,然后生成另一个圆圈等等 如同在随机生成中一样,它需要在现有圆的半径上繁殖,例如,距离圆2个单位的距离,前面不后面的任何位置(180度) 所有这些文字可能使问题看起来很复杂,但我真正需要的是在现有的圆圈之前创建另一个圆圈 如果你可以使用玩家的某种随机旋转来在玩家面前生成,这也会很有帮助 这是我迄今为止的代码,请随意在

我有一个“玩家”3D对象和一个“圆圈”3D对象。玩家已经可以一个接一个地向圆圈移动了

当按下空格键时,我需要在播放器前面随机生成圆圈,例如按下空格键,然后生成一个圆圈,再次按下空格键,然后生成另一个圆圈等等

如同在随机生成中一样,它需要在现有圆的半径上繁殖,例如,距离圆2个单位的距离,前面不后面的任何位置(180度)

所有这些文字可能使问题看起来很复杂,但我真正需要的是在现有的圆圈之前创建另一个圆圈

如果你可以使用玩家的某种随机旋转来在玩家面前生成,这也会很有帮助

这是我迄今为止的代码,请随意在答案中完全删除我的原始代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CreateObject : MonoBehaviour
{

    public Vector3 playerPos;
    public GameObject yourObject;

    // Use this for initialization
    void Start()
    {
        playerPos = playerPos.transform.position;
        Instantiate(yourObject, new Vector3(playerPos.transform.position.x +  5, playerPos.transform.position.y, playerPos.transform.position.z), Quaternion.identity);
    }

    // Update is called once per frame
    void Update()
    {
    }
}

提前谢谢

您可以在最大和最小角度之间围绕上方向向量旋转播放器,然后使用距离和方向找到新位置
对于随机角度零件,您可以使用
RandomAngle=Random.Range(MinAngle,MaxAngle)
然后与
四元数.角度轴(随机角度,playerUpVector)

要围绕玩家的上方向旋转,我不知道你的上方向使用了什么,但通常是
Vector3.Up

然后将其乘以玩家方向(
playerLocalDirection
)通常为
Vector3.forward

Vector3 newPos= myPos + Quaternion.AngleAxis(RandomAngle, playerUpVector) * playerLocalDirection * DistanceFromPlayer;

呃,您的代码只实例化了一个对象,正好在playerPos前面5个单元。你是否真的尝试过为你所寻找的东西编写代码/研究代码?这里有几个链接可以帮助你:可以帮助问题读者的是一个图表,用来解释你想要发生什么-因为你是对的,你问题的措辞并不能立即说明你希望如何安排新的圆圈。不管有多少个单位,代码是5,我的例子是2。那没什么区别@我知道你的代码是5,这就是为什么我说你的代码在做什么。然后我提到了两个链接,这两个链接应该为您提供足够的信息来解决您的问题,因为您付出了一定的努力。但是enemyPos应该是什么?它是您应该用来实例化新对象的位置,您可以随意命名它