Exemple #1
0
    public void AddNewItem(int posindex, Vector3 size, int itemindex)
    {
        // int index = CaculateIndexForPos(collisionPos);
        int xlength = (int)size.x;
        int zlength = (int)size.z;
        int num     = (int)size.x * (int)size.z;

        for (int i = 0; i < num; ++i)
        {
            int index = posindex + (i / xlength) * cm.mapwidth / cm.unitlength + i % xlength;
            //cm.unreachable.Add(index);
            if (!allunreachable.Contains(index))
            {
                allunreachable.Add(index);
            }
        }
        CustomItemInfo newitem = new CustomItemInfo();

        // newitem.type = itemtype;
        //newitem.width = xlength;
        // newitem.height = zlength;
        newitem.lefttopsite = posindex;
        // newitem.name = ResourceCenter.Instance.prefabObjects[itemindex].name;
        //newitem.prefab = ResourceCenter.Instance.prefabObjects[itemindex];
        cm.itemlist.Add(newitem);
    }
Exemple #2
0
    // 根据信息来创建物体,并且计算该物体新产生的不可达点,并添加进去
    public void CreateGameObjectAndAddUnreachable(CustomItemInfo iteminfo)
    {
        int     index   = iteminfo.lefttopsite;
        Vector3 lefttop = new Vector3(cm.center.x - cm.mapwidth / 2.0f, 0, cm.center.z + cm.mapheight / 2.0f);
        int     rank    = index % (cm.mapwidth / cm.unitlength) + 1; //(int)Mathf.Ceil((pos.x - lefttop.x) / (float)cm.unitlength);
        int     row     = index / (cm.mapwidth / cm.unitlength) + 1; // (int)Mathf.Ceil(Mathf.Abs(pos.z - lefttop.z) / (float)cm.unitlength);
        // int index = (row - 1) * cm.mapwidth / cm.unitlength + (rank);
        var lefttopcenterpos = new Vector3(rank * cm.unitlength + lefttop.x - cm.unitlength / 2.0f, 0, lefttop.z - row * cm.unitlength + cm.unitlength / 2.0f);

        //GameObject objTarget;
        //objTarget = GameObject.Instantiate(ResourceCenter.Instance.objectDic[iteminfo.name]);
        //Vector3 centerpos = CaculateCreateGameObjectCenter(lefttopcenterpos, new Vector3(iteminfo.width, 1, iteminfo.height));
        ////if (objTarget)
        ////objTarget.transform.position = centerpos;
        //objTarget.transform.position = new Vector3(centerpos.x, iteminfo.posy, centerpos.z);
        ////var newstyle = new GUIStyle();
        ////newstyle.fontSize = 10;
        ////Handles.Label(centerpos, iteminfo.id.ToString(), newstyle);
        //// cm.unreachable.Add(index);
        ////return centerpos;
    }
Exemple #3
0
    public void AddObject(CustomItemInfo iteminfo)
    {
        int     index   = iteminfo.lefttopsite;
        Vector3 lefttop = new Vector3(cm.center.x - cm.mapwidth / 2.0f, 0, cm.center.z + cm.mapheight / 2.0f);
        int     rank    = index % (cm.mapwidth / cm.unitlength) + 1; //(int)Mathf.Ceil((pos.x - lefttop.x) / (float)cm.unitlength);
        int     row     = index / (cm.mapwidth / cm.unitlength) + 1; // (int)Mathf.Ceil(Mathf.Abs(pos.z - lefttop.z) / (float)cm.unitlength);
        // int index = (row - 1) * cm.mapwidth / cm.unitlength + (rank);
        var lefttopcenterpos = new Vector3(rank * cm.unitlength + lefttop.x - cm.unitlength / 2.0f, 0, lefttop.z - row * cm.unitlength + cm.unitlength / 2.0f);
        //GameObject objTarget;
        //objTarget = GameObject.Instantiate(ResourceCenter.Instance.objectDic[iteminfo.name]);
        //Vector3 centerpos = CaculateCreateGameObjectCenter(lefttopcenterpos, new Vector3(iteminfo.width, 1, iteminfo.height));
        //if (objTarget)
        //{
        //    objTarget.transform.position = new Vector3(centerpos.x, iteminfo.posy, centerpos.z);
        //    objTarget.transform.parent = GameObject.FindObjectOfType<SceneMark>().gameObject.transform;

        //    if (objTarget.GetComponent<ItemMark>() == null)
        //    {
        //        ItemMark itemMark = objTarget.AddComponent<ItemMark>();
        //        itemMark.sceneMark = GameObject.FindObjectOfType<SceneMark>();
        //    }
        //}
    }
Exemple #4
0
 public void AddItem(CustomItemInfo iteminfo)
 {
 }