예제 #1
0
    //<summary>トリガー生成</summary>
    static public MapTrigger createTrigger(MapFileData.Trigger aData)
    {
        MapKeyEventTrigger tTrigger = MyBehaviour.create <MapKeyEventTrigger>();

        //形状
        MyTag tShapeTag = aData.mShape;

        switch (tShapeTag.mTagName)
        {
        case "cube":    //立方体
            BoxCollider tBox = tTrigger.gameObject.AddComponent <BoxCollider>();
            tBox.size   = new Vector3(float.Parse(tShapeTag.mArguments[0]), float.Parse(tShapeTag.mArguments[1]), float.Parse(tShapeTag.mArguments[1]));
            tBox.center = new Vector3(0, tBox.size.y / 2f, 0);
            break;

        default:
            throw new System.Exception("MapWorldFactory-TriggerFactory : 不正な形状名「" + tShapeTag.mTagName + "」");
        }

        //triggerKey
        tTrigger.mTriggerKey = aData.mTriggerKey;
        //eventKey
        tTrigger.mEnterKey = aData.mEnterKey;
        tTrigger.mStayKey  = aData.mStayKey;
        tTrigger.mMovedKey = aData.mMovedKey;
        tTrigger.mExitKey  = aData.mExitKey;
        //collisionType
        switch (aData.mCollisionType)
        {
        case "pass":
            tTrigger.mCollisionType = MapPhysics.CollisionType.pass;
            break;

        case "stop":
            tTrigger.mCollisionType = MapPhysics.CollisionType.stop;
            break;

        case "collide":
            tTrigger.mCollisionType = MapPhysics.CollisionType.collide;
            break;

        default:
            Debug.LogWarning("triggerFactory : 不正なcollisionType「" + aData.mCollisionType + "」");
            break;
        }
        //attribute
        TriggerPhysicsAttribute tAttribute = tTrigger.gameObject.AddComponent <TriggerPhysicsAttribute>();

        tAttribute.mTrigger = tTrigger;

        return(tTrigger);
    }
예제 #2
0
    //<summary>トリガーを生成してworldに追加</summary>
    static private MapTrigger buildTrigger(MapFileData.Trigger aData)
    {
        //生成フラグ確認
        if (!flagCreate(aData))
        {
            return(null);
        }

        MapTrigger tTrigger = createTrigger(aData);

        MapBehaviour tBehaviour = MyBehaviour.create <MapBehaviour>();

        tBehaviour.name = aData.mName;

        MapPhysicsBehaviour tPhysics = tTrigger.gameObject.AddComponent <MapPhysicsBehaviour>();

        tPhysics.transform.SetParent(tBehaviour.transform, false);
        tBehaviour.mPhysicsBehaviour = tPhysics;
        tTrigger.mBehaviour          = tBehaviour;
        tBehaviour.mMapPosition      = new MapPosition(aData.mPosition);

        tBehaviour.transform.SetParent(mWorld.mTriggerContainer.transform, false);
        return(tTrigger);
    }