2016-09-14 62 views
0

我想退出游戏中的“触发器”区域时放弃对象。因此,当我进入触发区时,会发生什么情况,对象是否开始浮动。但是当我离开这个区域的时候,物体不会落回地面,当我再次进入触发区域时,它会在半空中停止,它会继续漂浮?如何让物体在离开触发区时掉落?

这里是我的浮动脚本:

using UnityEngine; 
using System.Collections; 

public class Floatinga : MonoBehaviour { 

public float horizontalSpeed; 
public float verticalSpeed; 
public float amplitude; 

private Vector3 tempPosition; 

void Start() 
{ 
tempPosition = transform.position; 
} 

void FixedUpdate() 
{ 
tempPosition.x += horizontalSpeed; 
tempPosition.y += verticalSpeed; 
transform.position = tempPosition; 
} 
} 

,然后当我进入或退出:

using UnityEngine; 
using System.Collections; 

public class Floating : MonoBehaviour { 

public GameObject otherObject; 

// Use this for initialization 
void Start() { 
    otherObject.GetComponent<Floatinga>().enabled = false; 
} 

void OnTriggerEnter() 
{ 
    otherObject.GetComponent<Floatinga>().enabled = true; 
} 
// Update is called once per frame 
void OnTriggerExit() 
{ 
    otherObject.GetComponent<Floatinga>().enabled = false; 

} 
} 

所以我不知道我做错了吗?任何人都可以帮忙吗? 谢谢

回答

1

只需添加一个刚体并将useGravity设置为true即可。

+0

不,它不工作。该物体刚开始漂浮,没有我进入触发区域,似乎现在正在反弹。 – Newbie

+1

由于您的固定更新正在设置物体的位置,同时重力作用于其上。当你希望对象浮起来时,你应该禁用重力,并启用引力,当你想让它掉落时禁用该浮动脚本。 – Everts

+0

啊,好吧。谢谢!现在工作。 – Newbie