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

Generating GameObject in front of player infinitely

我有一个 'player' 3D 对象和一个 'circle' 3D 对象。玩家已经可以一个一个的向圆圈移动了。

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

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

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

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

到目前为止,这是我的代码,请随时在答案中完全擦除我的原始代码:

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);
然后将其与
一起使用 Quaternion.AngleAxis(RandomAngle, playerUpVector)
围绕你的球员向上矢量旋转它,我不知道你用什么作为你的向上矢量但通常它是 Vector3.up
然后乘以你的玩家方向(playerLocalDirection)通常是 Vector3.forward

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