using System; using System.Collections; using System.Collections.Generic; using AX.MessageSystem; using UnityEngine; using AX.NetworkSystem; using AX.InputSystem; public class CloneSonwCannon : CloneBase { [SerializeField] [Tooltip("距离地面距离")] protected float Height = 0; private MoveWaterCannonTool movetool; public override void Execute(IMessage obj) { var gameObjID = (long)obj.Sender; var data = ((CloneCmdArgs)obj.Data); if (data.cloneObjType == cloneObjType) { if (SkillTollPanel.Instance) { if (SkillTollPanel.Instance.GetComponent()) { movetool = SkillTollPanel.Instance.GetComponent(); } } if (int.Parse(movetool.snowCannonnumText.text) <= 0) { LoadPromptWin.Instance.LoadTextPromptWindow("暴风雪炮不足", 1f); return; } var hitPoint = data.hitPos; Vector3 clonedObjPos = new Vector3(hitPoint.x, hitPoint.y + Height, hitPoint.z); var clonedObj = EntitiesManager.Instance.CreateObj(clonePrefab, clonedObjPos, transform, gameObjID); clonedObj.name = CloneObjNameTool.Instance().GetCloneObjectName(cloneObjType); SelectedObjs.gameObjs.Add(clonedObj); //设置克隆物体所在楼层等基本属性,属性从点击的对象上获取 var hitObj = EntitiesManager.Instance.GetEntityByID(data.gameObjID); CloneGameObjInfo hitObjInfo = hitObj.GetComponent(); CloneGameObjInfo cloneObjInfo = clonedObj.GetComponent(); cloneObjInfo.gameObjType = cloneObjType; cloneObjInfo.UserID = CurrentUserInfo.mySelf.Id; cloneObjInfo.buildNum = hitObjInfo.buildNum; cloneObjInfo.floorNum = hitObjInfo.floorNum; cloneObjInfo.interlayerNum = hitObjInfo.interlayerNum; if (data.cloneObjType == CloneObjType.SnowCannon) { MessageDispatcher.SendMessage("CreatExpendToolNum", cloneObjType); } //克隆同步 CloneDisasterSyncData clonesync = new CloneDisasterSyncData(); clonesync.ClonePosition = clonedObjPos; clonesync.SendUserID = CurrentUserInfo.mySelf.Id; //clonesync.parentUID =GetComponent().Id; clonesync.name = clonedObj.name; //clonesync.PrefabsPath = PrefabsPath + cloneObjType.ToString(); clonesync.floorNum = hitObjInfo.floorNum; clonesync.buildNum = hitObjInfo.buildNum; clonesync.interlayerNum = hitObjInfo.interlayerNum; clonesync.gameObjID = clonedObj.GetComponent().gameObjID; clonesync.gameObjType = clonedObj.GetComponent().gameObjType; clonesync.UserID = clonedObj.GetComponent().UserID; clonesync.HitObjID = hitObjInfo.gameObjID; //NetworkManager.Default.SendAsync(CurrentUserInfo.mySelf.Id,"CLONE_SINGLE_DISASTER_SYNC", clonesync); NetworkManager.Default.SendAsync("CLONE_SNOWCANNON_SYNC", clonesync); } } }