gpt4 book ai didi

c# - unity 3.3,在物体上创建局部重力

转载 作者:太空宇宙 更新时间:2023-11-03 14:03:30 28 4
gpt4 key购买 nike

使用 Unity 3.3。 visual studio express 2010. 和 c#。

我需要制作一个附加到对象的脚本。该对象将创建自己的引力场,该引力场将吸引-排斥环境中的所有对象。

不幸的是,由于 unity 的物理学,我不确定该怎么做。我需要这个对象来覆盖所有其他对象吗?我要覆盖 unity 的主要物理学吗?这个怎么用或者当它是一个简单的脚本时我是否把事情复杂化了?

不,我不想添加一个 rigig 体,所以物体会随着重力下落,它必须创造更强大的重力。

干杯

更新!

public float radius = 5.0f;
public float power = -20f;
void Start ()
{
//GameObject gravityObject = GameObject.FindGameObjectWithTag("GravitySwell");
//gravSlime = gravityObject.transform;
}

void Update ()
{
Vector3 explosionPos = transform.position;
Collider[] colliders = Physics.OverlapSphere(explosionPos, radius, 3);
foreach (Collider hit in colliders)
{
if (!hit)
{
continue;
}
if (hit.rigidbody)
{
hit.rigidbody.AddExplosionForce(power, explosionPos, radius, 3);
}
}
}
}

这是有效的,因为它增加了吸引物体的负力。问题是当这个脚本分配给的有吸引力的对象在半空中时。任何被捕获的物体都会飞向它,但随后似乎只会再次被吸引而落下。关于原因的任何提示?

我在想这样的事情,但什么也没发生:

Vector3 direction = this.transform.position - hit.transform.position;
direction.Normalize();
//hit.rigidbody.AddExplosionForce(power, explosionPos, radius, 3);
//hit.transform.position.;
hit.rigidbody.isKinematic = false;
hit.rigidbody.AddForce(direction);

更新::好吧,我正在尝试这个,它似乎工作得很好,但它附着在被吸引的物体上。我也希望有人有更好的主意?

public void OnCollisionEnter(Collision col)
{
if(col.gameObject.tag == "GravitySwell")
{
Debug.Log("i hit it!!!");
rigidbody.velocity = Vector3.zero;
}
}

最佳答案

您可以做的是添加一个碰撞盒,unity 将其作为组件添加到任何游戏对象中,然后检查是否有任何东西进入该碰撞盒并向正在碰撞的对象施加力。如果需要,我会给你示例代码。

//编辑

您可以将自己的重力添加到脚本中,并拥有自己的函数来添加力以使其沿某个方向移动,但这样您就知道您可以改变一次摆脱的重力。 body 做

但是如果你想做你自己的引力你可以做

bool grounded = false;

void gravity(){

gameObject.trasform.position.x -= gravity

}

void onCollisionEnter(collision c){
//check and see what you are colliding with and if its the ground then set grounded to true and that will get you falling gravity. there is more you can do for more adv. gravity but ill leave that up to you
}

编辑*

如果我明白你所说的坚持一个对象,你需要做的就是使该对象成为需要坚持它的对象的父级

关于c# - unity 3.3,在物体上创建局部重力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10044419/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com