检测即时刷新对象的碰撞

时间:2016-03-18 11:00:08

标签: c# unity3d collision-detection collider

所以我有一个旧代码,用于" Connect4"这是几年前写的游戏,现在我遇到了一个很大的问题,就是为了一个unity3D项目而得到结果并重建它们。

问题在于,每个游戏对象(我已经设法在场景中实现)都意味着每一帧都被破坏和重新实现(我的感觉实际上更像是帧时间);想要及时获得每个游戏对象的颜色似乎真的很有挑战性,我现在应该不输入创建的代码我只应该从我得到的图形结果中获取信息。

所以现在我有一个带有网格配置的方框,根据玩家的转动颜色改变颜色(红色表示cp,黄色表示plyer)。

我创建了一个带有碰撞器的固定盒子,并想让游戏对象每帧都与它相撞但我失败了。

PS:我测试了这段代码,我在这个社区找到的每个解决方案都希望找到一些帮助,谢谢。

using UnityEngine;
using System.Collections;

public class SelectorCode : MonoBehaviour
{
    public Collision other;

    public GameObject GO;

    void OnTriggerEnter(Collider other)
    {
        GO = other.gameObject;


    }
    void OnTriggerStay(Collider other)
    {
        GO = other.gameObject;


    }
    void OnTriggerExit(Collider other)
    {
        GO = other.gameObject;


    }

    void Update()
    {

        GO = this.other.gameObject;

    }
}

1 个答案:

答案 0 :(得分:0)

首先确保附加SelectorCode组件的对象具有触发器对撞机(选中属性“Is Trigger”)。

接下来,Update方法会出现GO = this.other.gameObject;错误,因为其他内容从未分配过。我认为你应该删除该行。

最后,在OnTriggerExit中,您放入GO离开对手的对象,这没有意义,您应该将GO分配给null at这一点:

void OnTriggerExit(Collider other)
{
    if (other.gameObject == GO) 
    {
        GO = null;
    }
}