Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.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_Random_Rigid Bodies - Fatal编程技术网

C# 如何在繁殖对象上添加不同的重力?

C# 如何在繁殖对象上添加不同的重力?,c#,unity3d,random,rigid-bodies,C#,Unity3d,Random,Rigid Bodies,我正在做一个项目,我想在按下按钮“Q”时创建一个加电效果,我有动画和角色,我的播放器周围也有我想要生成的生成对象(参见下图) 我的问题是如何在每个岩石(繁殖对象)上添加不同的重力 这是我目前正在使用的脚本 /* Public Variables Declaration */ public Transform spawn_LocationForSmall; public Transform spawn_LocationForMedium; public Transform spawn_Locati

我正在做一个项目,我想在按下按钮“Q”时创建一个加电效果,我有动画和角色,我的播放器周围也有我想要生成的生成对象(参见下图) 我的问题是如何在每个岩石(繁殖对象)上添加不同的重力

这是我目前正在使用的脚本

/* Public Variables Declaration */
public Transform spawn_LocationForSmall;
public Transform spawn_LocationForMedium;
public Transform spawn_LocationForLarge;
public GameObject smallRock_Prefab;
public GameObject mediumRock_Prefab;
public GameObject largeRock_Prefab;

/* Private Variables Declaration */
private GameObject[] smallRocks_List;
private float posX, posY, posZ;

private bool smallCount = false;
private bool mediumCount = false;
private bool largeCount = false;

private bool small_CheckPos = false;
private bool medium_CheckPos = false;
private bool large_CheckPos = false;




void Start() {

    //smallRocks_List = GameObject.FindGameObjectsWithTag("smallRock");

    Create_Small_Rocks();

    Create_Medium_Rocks();

    Create_Large_Rocks();


}

 private void Create_Small_Rocks(){

    for(int i=0; i<=20; i++){

        small_CheckPos = false;
        posX = this.transform.position.x + Random.Range(-3.0f, 3.0f);
        posY = this.transform.position.y + Random.Range(-3.0f, 3.0f);
        posZ = this.transform.position.z + Random.Range(-3.0f, 3.0f);

        if(posX > 3f && posY > 3f){

            small_CheckPos = true;
        }

        if (small_CheckPos == true) {

            Vector3 newPos = new Vector3(posX, posY, posZ);

            GameObject createdObject = GameObject.Instantiate(smallRock_Prefab, 
                newPos, spawn_LocationForSmall.rotation) as GameObject;

            createdObject.transform.parent = spawn_LocationForSmall.transform;
        }

    }
    smallCount = true;
}
 /* the other two functions are similar to this */
/*公共变量声明*/
小型公共转换产卵地点;
公共转换生成位置媒体;
公共转换产卵位置用于大型;
公共游戏对象smallRock_预制;
公共游戏对象mediumRock_预制;
公共游戏对象largeRock_预制;
/*私有变量声明*/
私人游戏对象[]小岩石\u列表;
私人浮动posX、posY、posZ;
private bool smallCount=false;
私有bool mediumCount=false;
private bool largeCount=false;
private bool small_CheckPos=假;
私有bool medium_CheckPos=假;
private bool large_CheckPos=假;
void Start(){
//smallRocks_List=GameObject.FindGameObjectsWithTag(“smallRock”);
创建小岩石();
创建_Medium_Rocks();
创建大石头();
}
私人空间创建小型岩石(){
对于(int i=0;i 3f&&posY>3f){
small_CheckPos=真;
}
如果(小检查位置==真){
Vector3 newPos=新的Vector3(posX、posY、posZ);
GameObject createdObject=GameObject.Instantiate(smallRock_预置,
newPos,作为游戏对象的spawn_LocationForSmall.rotation);
createdObject.transform.parent=spawn_LocationForSmall.transform;
}
}
smallCount=true;
}
/*其他两个功能与此类似*/

我真的不知道你是否可以改变每个人的重力,但你可以改变这些东西:

质量:
在刚体组件中,顶部有一个“质量”组件。正如Unity文档中所说:“碰撞时,质量较高的物体会推动质量较低的物体。想象一下一辆大卡车撞上一辆小车。”然而,这并不会改变物体下落的速度

物理材料:
在碰撞器组件中,您应该看到一种称为“材质”的东西。您可以创建新的物理材质并随机编辑它们,以使岩石和曲面之间的摩擦力更高或更低,并以这种方式更改岩石的弹性

恒力:
如果希望某些对象下落更快,可能需要使用此组件。我个人以前从未用过这个,但它看起来很适合你的问题。你可以用这个组件给一个物体加一个恒力,所以如果你在你的岩石上加一些向下的力,它会帮助他们更快地落下


请告诉我这些是否有用。

我不知道你是否可以改变每个人的重力,但你可以改变这些东西:

质量:
在刚体组件中,顶部有一个“质量”组件。正如Unity文档中所说:“碰撞时,质量较高的物体会推动质量较低的物体。想象一下一辆大卡车撞上一辆小车。”然而,这并不会改变物体下落的速度

物理材料:
在碰撞器组件中,您应该看到一种称为“材质”的东西。您可以创建新的物理材质并随机编辑它们,以使岩石和曲面之间的摩擦力更高或更低,并以这种方式更改岩石的弹性

恒力:
如果希望某些对象下落更快,可能需要使用此组件。我个人以前从未用过这个,但它看起来很适合你的问题。你可以用这个组件给一个物体加一个恒力,所以如果你在你的岩石上加一些向下的力,它会帮助他们更快地落下


请告诉我这些是否有用。

搜索粒子系统:

(一)

(二)

(三)

  • 它允许你上传酷炫的效果,甚至可以将预置作为克隆对象(在本例中是岩石/小行星)。它还可以控制产卵速度/数量/速度/(随机)大小/物理(重力)

搜索粒子系统:

(一)

(二)

(三)

  • 它允许你上传酷炫的效果,甚至可以将预置作为克隆对象(在本例中是岩石/小行星)。它还可以控制产卵速度/数量/速度/(随机)大小/物理(重力)

注意:要检查标签是否适合与您的问题一起使用,您可以通过单击标签,然后单击“更多信息”来确定标签的数量。为什么每个岩石需要不同的重力?事实上,岩石的重力并不比其他岩石大,但它们的质量确实比其他岩石大change@LoizosVasileiou对在刚体上,通过预设或代码更改其质量。注意:要检查标记是否适合用于您的问题,您可以通过单击标记,然后单击“更多信息”来更改标记的数量。为什么每个岩石需要不同的重力?事实上,岩石的重力并不比其他岩石大,它们确实有更大的质量,你可以change@LoizosVasileiou是的,在刚体上改变它的质量,无论是在预设中还是通过代码。这有助于理解物理是如何在统一中工作的。感谢@Qedizedhul帮助我们理解物理学是如何在统一中工作的。谢谢@Qedized