コード例 #1
0
        protected override void _OnLoad(ActorInstance.ActorBase actor)
        {
            base._OnLoad(actor);

            ActorInstance.Room roomInst = actor as ActorInstance.Room;
            if (roomInst != null)
            {
                roomInst.mono = roomInst.actorTrans.GetComponent <RoomMono>();
            }
            else
            {
                Debug.LogErrorFormat("Room {0} OnLoad an actor which is NOT a room instance!", name);
            }

            int index = 0;

            //init connectors
            foreach (ConnectorSocket socket in ConnectorSockets)
            {
                ActorInstance.Trigger   trig      = socket.GenerateTrigger();
                ActorInstance.Connector connector = trig as ActorInstance.Connector;
                if (roomInst.ConnectorList == null)
                {
                    roomInst.ConnectorList = new List <ActorInstance.Connector>();
                }

                if (connector == null)
                {
                    Debug.LogErrorFormat("{0} connector {1} is null!", roomName, index);
                }
                else
                {
                    roomInst.ConnectorList.Add(connector);
                    connector.parentRoom = roomInst;
                    connector.SetParent(roomInst.actorTrans, socket.LocalPosition, Quaternion.Euler(socket.LocalEulerRotation));
                }
                index++;
            }

            //init triggers
            foreach (TriggerSocket socket in TriggerSockets)
            {
                ActorInstance.Trigger trigger = socket.GenerateTrigger();
                trigger.parentRoom = roomInst;
                trigger.SetParent(roomInst.actorTrans, socket.LocalPosition, Quaternion.Euler(socket.LocalEulerRotation));
            }
        }