コード例 #1
0
ファイル: MotionTrigger.cs プロジェクト: Vladabdf/OpenKh
        public MotionTrigger(Stream stream)
        {
            if (!stream.CanRead || !stream.CanSeek)
            {
                throw new InvalidDataException($"Read or seek must be supported.");
            }

            BinaryReader reader = new BinaryReader(stream);

            byte  rangeTriggerCount  = reader.ReadByte();
            byte  frameTriggerCount  = reader.ReadByte();
            short frameTriggerOffset = reader.ReadInt16();

            RangeTriggerList = new List <RangeTrigger>();
            for (int i = 0; i < rangeTriggerCount; i++)
            {
                RangeTrigger rangeTrigger = new RangeTrigger();
                rangeTrigger.StartFrame = reader.ReadInt16();
                rangeTrigger.EndFrame   = reader.ReadInt16();
                rangeTrigger.Trigger    = reader.ReadByte();
                rangeTrigger.ParamSize  = reader.ReadByte();
                rangeTrigger.Param      = new List <short>();
                for (int j = 0; j < rangeTrigger.ParamSize; j++)
                {
                    rangeTrigger.Param.Add(reader.ReadInt16());
                }
                RangeTriggerList.Add(rangeTrigger);
            }

            FrameTriggerList = new List <FrameTrigger>();
            for (int i = 0; i < frameTriggerCount; i++)
            {
                FrameTrigger frameTrigger = new FrameTrigger();
                frameTrigger.Frame     = reader.ReadInt16();
                frameTrigger.Trigger   = reader.ReadByte();
                frameTrigger.ParamSize = reader.ReadByte();
                frameTrigger.Param     = new List <short>();
                for (int j = 0; j < frameTrigger.ParamSize; j++)
                {
                    frameTrigger.Param.Add(reader.ReadInt16());
                }
                FrameTriggerList.Add(frameTrigger);
            }
        }
コード例 #2
0
        void Start()
        {
            WireframeBoxes = SimulatorManager.Instance.WireframeBoxes;

            if (RangeTrigger == null)
            {
                RangeTrigger = GetComponentInChildren <RangeTrigger>();
            }

            RangeTrigger.SetCallbacks(WhileInRange);
            RangeTrigger.transform.localScale = MaxDistance * Vector3.one;

            MapOrigin = MapOrigin.Find();

            Detected   = new Dictionary <uint, Tuple <Detected3DObject, Collider> >();
            CurrentIDs = new HashSet <uint>();

            StartCoroutine(OnPublish());
        }