0

所以我有一个多年前编写的“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;

    }
}
4

1 回答 1

0

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

Update接下来,您将在方法中遇到错误,GO = this.other.gameObject;因为 other 从未分配过。我认为您应该删除该行。

最后,在OnTriggerExit你放入GO离开你的对撞机的对象时,这没有意义,你应该在这一点上分配GO给:null

void OnTriggerExit(Collider other)
{
    if (other.gameObject == GO) 
    {
        GO = null;
    }
}
于 2016-03-18T11:14:13.330 回答