Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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 - Fatal编程技术网

C# 我怎样才能将枪管绕着它自己旋转,同时也向其他方向旋转?

C# 我怎样才能将枪管绕着它自己旋转,同时也向其他方向旋转?,c#,unity3d,C#,Unity3d,我想让枪管像失控一样四处射击 到目前为止,我所做的是枪管将围绕它自身旋转,因为我想让它在失去控制的情况下射击,但现在我如何让它也在x和z方向旋转,这样它就能四处射击 脚本被附加到父无人机上,现在我只在Y轴上旋转枪管。 但我也希望它在X和Z方向上旋转,这样就可以围绕着这个地方射击,而不仅仅是向前 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Rotate :

我想让枪管像失控一样四处射击

到目前为止,我所做的是枪管将围绕它自身旋转,因为我想让它在失去控制的情况下射击,但现在我如何让它也在x和z方向旋转,这样它就能四处射击

脚本被附加到父无人机上,现在我只在Y轴上旋转枪管。 但我也希望它在X和Z方向上旋转,这样就可以围绕着这个地方射击,而不仅仅是向前

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

public class Rotate : MonoBehaviour
{
    public Transform[] wings;
    public Transform[] propellers;
    public Transform gunBarrel;
    public float propellersSpinSpeed = 50;
    public float wingsSpinSpeed = 50;
    public float gunBarrelSpeed = 50;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        for(int i = 0; i < propellers.Length; i++)
        {
            propellers[i].Rotate(0, propellersSpinSpeed * Time.deltaTime, 0);
        }

        for(int i = 0; i < wings.Length; i++)
        {
            wings[i].Rotate(0, wingsSpinSpeed * Time.deltaTime, 0);
        }

        gunBarrel.Rotate(0, 30 * gunBarrelSpeed * Time.deltaTime, 0);
    }
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类:单一行为
{
公共部门;
公共螺旋桨;
公共枪管;
公共浮式螺旋桨旋转速度=50;
公共浮标翼Spinspeed=50;
公共浮动枪管速度=50;
//在第一帧更新之前调用Start
void Start()
{
}
//每帧调用一次更新
无效更新()
{
对于(int i=0;i<螺旋桨长度;i++)
{
螺旋桨[i]。旋转(0,螺旋桨旋转速度*Time.deltaTime,0);
}
对于(int i=0;i

在脚本的底部,我在Y轴上旋转枪管。我怎样才能通过在x轴和z轴上旋转枪管使它现在变得逼真,这样它就可以在周围拍摄了?(稍后我将首先进行拍摄部分,我想进行旋转)。

我的答案是简单地随机旋转值:

public float gunBarrelSpeed = 10;
private void Update()
{
    float xRotation = Random.value;
    float yRotation = Random.value;
    float zRotation = Random.value;

    xRotation *= speed;
    yRotation *= speed;
    zRotation *= speed;
    gunBarrel.Rotate(xRotation, yRotation, zRotation);
}
也许你需要设定一些界限(因为我支持有人会用枪),但想法是一样的