Ejemplo n.º 1
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="size">size指的是xyz方向的长度,所以到侧墙,x和z应该互换</param>
    /// <param name="setType"></param>
    /// <param name="data"></param>
    public void GetMinMaxPos(MapUtil.IVector3 size, MapUtil.SetType setType, ref FurnitureInitData data)
    {
        data.m_MinPos = m_StartPos + size.MulVal(GameApp.Inst.m_MapGridUnityLenHalf);
        data.m_MaxPos = m_StartPos + m_Size.MulVal(GameApp.Inst.m_MapGridUnityLen) - size.MulVal(GameApp.Inst.m_MapGridUnityLenHalf);
        if (setType == MapUtil.SetType.WallOnFloor)
        {
            data.m_MaxPos.y = data.m_MinPos.y;
        }
        else if (setType == MapUtil.SetType.Wall)//墙上的不能贴地
        {
            data.m_MinPos.y += GameApp.Inst.m_MapGridUnityLen;
        }

        //墙面可以互跳
        if (m_Type == Enum_Wall.Wall)
        {
            data.m_MinPos.x -= GameApp.Inst.m_MapGridUnityLen;
            data.m_MaxPos.x += GameApp.Inst.m_MapGridUnityLen;
        }
        else if (m_Type == Enum_Wall.Left ||
                 m_Type == Enum_Wall.Right)
        {
            data.m_MaxPos.z += GameApp.Inst.m_MapGridUnityLen;
        }

        data.m_MinPos = AdjustFurn2Wall(size, false, data.m_MinPos);
        data.m_MaxPos = AdjustFurn2Wall(size, false, data.m_MaxPos);

        //Debug.LogWarning("min=" + MapUtil.Vector3String(data.m_MinPos) + " max=" + MapUtil.Vector3String(data.m_MaxPos) + " size=" + size);
    }
Ejemplo n.º 2
0
    public static FurnitureInitData InitFurn(IVector3 size, MapUtil.SetType setType, FurnitureInitData oldData, Enum_Wall wall)
    {
        if (oldData == null)
        {
            oldData = new FurnitureInitData();
        }

        oldData.m_CurWall = wall;

        GetMap(oldData.m_CurWall).GetMinMaxPos(size, setType, ref oldData);
        oldData.m_AdjustPar = GetMap(oldData.m_CurWall).GetAdjustPar(size);

        return(oldData);
    }
Ejemplo n.º 3
0
    void Awake()
    {
        m_Render = this.GetComponent <Renderer>();
        this.gameObject.layer = LayerMask.NameToLayer(Enum_Layer.Furniture.ToString());

        m_Id       = Util.IDGenerator(m_Id);
        m_InitData = new FurnitureInitData();

        JerryEventMgr.AddEvent(Enum_Event.SetOneFurn.ToString(), EventSetOneFurn);
        JerryEventMgr.AddEvent(Enum_Event.SetFurn2Pos.ToString(), EventSetFurn2Pos);
        JerryEventMgr.AddEvent(Enum_Event.CancelSetFurn.ToString(), EventCancelSetFurn);
        JerryEventMgr.AddEvent(Enum_Event.SetFurn2Package.ToString(), EventSetFurn2Package);
        JerryEventMgr.AddEvent(Enum_Event.Click3DObj.ToString(), EventClick3DObj);
        JerryEventMgr.AddEvent(Enum_Event.Click3DDown.ToString(), EventClick3DDown);

        _awaked = true;
        TryWork();
    }
Ejemplo n.º 4
0
 /// <summary>
 /// 初始化到墙
 /// </summary>
 /// <param name="fromWall"></param>
 /// <param name="toWall"></param>
 private void Init2Wall(Enum_Wall fromWall, Enum_Wall toWall)
 {
     m_Config.size = MapUtil.ChangeObjSize(m_Config.size, fromWall, toWall);
     m_InitData    = MapUtil.InitFurn(m_Config.size, m_Config.setType, m_InitData, toWall);
     this.transform.eulerAngles = MapUtil.GetObjEulerAngles(m_InitData.m_CurWall);
 }