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); }
// 根据信息来创建物体,并且计算该物体新产生的不可达点,并添加进去 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; }
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>(); // } //} }
public void AddItem(CustomItemInfo iteminfo) { }