【发布时间】:2018-10-25 00:03:52
【问题描述】:
我有一个发射气泡的粒子效果,当角色进入气泡流时,我想创建气泡始终沿其前进方向移动角色的效果。我该怎么做呢?我已经在粒子效果中放置了一个对撞机,并且到目前为止已经尝试过这段代码。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GeyserPush : MonoBehaviour {
public GameObject Player;
public float Speed;
private void OnTriggerEnter(Collider other)
{
if(other.gameObject == Player)
{
//other.transform.Translate((Vector3.up * Time.deltaTime), Space.World);
Player.transform.Translate(Vector3.up * Time.deltaTime * Speed);
print("Pushing");
}
}
private void OnTriggerExit(Collider other)
{
if (other.gameObject == Player)
{
}
}
}
代码不完整,因为我还没有完整的解决方案。该角色也确实配备了刚体。
【问题讨论】:
-
自从我使用 Unity 已经有一段时间了,但我的理解是
OnTriggerEnter在对象碰撞时只运行一次。您想将该代码放入游戏循环(Update函数)中,以检查玩家和对撞机是否重叠/接触。 -
这很好。我必须记住这一点。
标签: c# unity3d rigid-bodies