2017-01-09 80 views
0

enter image description here我有一個'玩家'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() 
    { 
    } 
} 

謝謝!

+0

錯誤,你的代碼只能在playerPos前正好5個單元實例化一個對象。你是否真的試圖編寫你想要的代碼/研究代碼? – Alox

+1

這裏有幾個鏈接可以幫助你: https://docs.unity3d.com/ScriptReference/Random.Range.html https://docs.unity3d.com/ScriptReference/Input.GetKeyDown.html – Alox

+0

Something這可能會幫助讀者解決這個問題是一個圖表,解釋你想要發生的事情 - 因爲你是對的,你的問題的措辭並沒有立即明確你想要如何安排新的圈子。 – Serlite

回答

1

,你可以在你的向上矢量旋轉你的最大和最小角之間您的播放器,然後用你的距離和方向,以查找任意角度的部分新位置
可以生成與
RandomAngle=Random.Range(MinAngle,MaxAngle);
一個隨機數,然後用它來與
Quaternion.AngleAxis(RandomAngle, playerUpVector)
圍繞你的球員Upvector旋轉它,我不知道你用什麼你向上向量但通常是Vector3.up
然後通過你的球員的方向乘以(playerLocalDirection),其通常是Vector3.forward

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

這真的很有幫助,謝謝! – Nil

+0

但是,敵人應該是什麼? – Nil

+0

這是你應該用來實例化你的新對象的位置,將它命名爲任何你想要的 –