Example #1
0
 /// <summary>
 /// 与柱子相撞
 /// </summary>
 /// <param name="col"></param>
 void onColumnColl(WaterColumn col)
 {
     if (col == targetCol)
     {
         stop();
     }
 }
Example #2
0
        /// <summary>
        /// 使用磁石
        /// </summary>
        void useMagnetite()
        {
            var dir = player.direction;
            var vec = RuntimeCharacter.dir82Vec(dir);
            //var resList = Physics2D.RaycastAll(pos, vec, magnetiteDist);

            Collider2D collider2d = Physics2D.OverlapBox(pos, collider.bounds.size, 0f, 1 << 8);

            for (int i = 1; i < magnetiteDist; i++)
            {
                collider2d = Physics2D.OverlapBox(pos + vec * i, collider.bounds.size, 0f, 1 << 8);
                debugLog(collider2d?.name);
                debugLog(collider?.bounds.size);
                var obj = collider2d?.gameObject;
                targetCol = SceneUtils.get <WaterColumn>(obj);
                if (targetCol == null)
                {
                    continue;
                }
                runtimeActor.addEnergy(-magnetiteEnergy);
                moveDirection(dir); break;
            }
            //foreach(var res in resList) {
            //	var obj = res.collider?.gameObject;

            //	targetCol = SceneUtils.get<WaterColumn>(obj);
            //	if (targetCol == null) continue;

            //	moveDirection(dir); break;
            //}
        }