public override void Awake() { //虽然添加了raycast对象,但是还没添加pos.... //而且panel -> obj的管理模式非常值得借鉴 rayCastTargetCom = AddComponent <RayCastTarget>(); rayCastTargetCom.OnMoveInEvent += () => { Select(true); }; rayCastTargetCom.OnMoveOutEvent += () => { Select(false); }; //添加边框对象 BoxDrawing = UIFactroy.CreateBoxDrawingRect(Position - new Vector2(1, 1), 2, 40); BoxDrawing.Parent = GameObject; Select(false); //添加Label对象 List <Vector2> posList = new List <Vector2>(); for (int i = 0; i < 40; i++) { posList.Add(new Vector2(i, 0)); } GameObject labelObj = new GameObject("StateLabel", "UI", GameObject, new Vector2(0, 1), posList); labelCom = labelObj.AddComponent <Renderer>(); labelCom.Init(RendererMode.UI, (int)Layer.Label); //添加血条对象 progressBar = ProgressBar.Create(length: 40); progressBar.GameObject.Parent = GameObject; progressBar.LocalPosition = new Vector2(0, 0); }
public static void Make(RayCastTarget target, int entityId, int key, string tip) { BaseCastData.Make(target, ECastDataType.Common); target.IdList.Add(entityId); target.IdList.Add(key); target.Data = tip; }
public static void Make(RayCastTarget target, ECastDataType type) { target.KeyList.Clear(); target.IdList.Clear(); target.KeyList.Add(UserInputKey.PickUpTip); target.IdList.Add((int)type); }
private void ProcessSimpleEquipment(SceneObjectEntity entity, RayCastTarget target) { var equip = entity.simpleEquipment; var category = entity.simpleEquipment.Category; var entityId = entity.entityKey.Value.EntityId; SceneObjCastData.Make(target, entityId, equip.Id, equip.Count, category); switch ((ECategory)category) { case ECategory.Weapon: var weaponCfg = SingletonManager.Get <WeaponResourceConfigManager>().GetConfigById(equip.Id); if (null == weaponCfg) { break; } var weaponType = (EWeaponType_Config)weaponCfg.Type; if (weaponType.CanAutoPick()) { EnableAutoPickup(entityId, target.gameObject); } break; default: break; } }
public static void Make(RayCastTarget target, int entityId) { if (null == target) { return; } BaseCastData.Make(target, ECastDataType.FreeObject); target.IdList.Add(entityId); }
protected override void SetRaycastTargetData(KeyData data, RayCastTarget target) { var pointerData = data as PointerData; if (null == pointerData) { return; } pointerData.Data = target.Data; pointerData.IdList = target.IdList; }
private void InitRayCastTargets() { GameObject[] tempTargets = GameObject.FindGameObjectsWithTag("RayCastTarget"); Targets = new RayCastTarget[tempTargets.Length]; int index = 0; foreach (GameObject target in tempTargets) { RayCastTarget newTarget = target.AddComponent <RayCastTarget>(); Targets[index] = newTarget; index++; } }
public static void Make(RayCastTarget target, int entityId) { if (null == target) { Logger.Error("target is null"); return; } if (!target.IdList.Contains(entityId)) { BaseCastData.Make(target, ECastDataType.Door); target.IdList.Add(entityId); } }
public static void Make(RayCastTarget target, int entityId, int itemId, int count, int category) { if (null == target) { Logger.Error("target is null !!"); return; } BaseCastData.Make(target, ECastDataType.SceneObject); var idList = target.IdList; idList.Add(entityId); idList.Add(itemId); idList.Add(count); idList.Add(category); }
private void ProcessWeapon(SceneObjectEntity entity, RayCastTarget target) { var weapon = entity.weaponObject; var entityId = entity.entityKey.Value.EntityId; SceneObjCastData.Make(target, entityId, weapon.ConfigId, 1, (int)ECategory.Weapon); var weaponType = (EWeaponType_Config)SingletonManager .Get <WeaponResourceConfigManager>().GetConfigById(weapon.ConfigId) .Type; if (weaponType.CanAutoPick()) { EnableAutoPickup(entityId, target.gameObject); } }
private void ProcessWeaonCastSetting(SceneObjectEntity entity, RayCastTarget target) { var weapon = entity.weaponObject; var entityId = entity.entityKey.Value.EntityId; SceneObjCastData.Make(target, entityId, weapon.ConfigId, entity.hasSimpleItem ? entity.simpleItem.Count : 1, (int)ECategory.Weapon); /*var weaponType = (EWeaponType_Config) SingletonManager * .Get<WeaponResourceConfigManager>().GetConfigById(weapon.ConfigId) * .Type; * if (weaponType.CanAutoPick()) * { * EnableAutoPickup(entityId, target.gameObject); * }*/ }
public static RayCastTarget Assemble(GameObject model, Vector3 position, string name, bool needRotation = false) { if (null == model) { Logger.ErrorFormat("model is null !"); return(null); } model.transform.position = position + GetGroundAnchorOffset(model); var colTrans = model.transform.Find(SceneObjectConstant.NormalColliderName); if (null == colTrans) { Logger.ErrorFormat("no normal collider find in {0}", model.name); var colGo = new GameObject(SceneObjectConstant.NormalColliderName); colTrans = colGo.transform; colTrans.parent = model.transform; colTrans.localPosition = Vector3.zero; colTrans.localEulerAngles = Vector3.zero; colTrans.localScale = Vector3.one; var col = colGo.AddComponent <BoxCollider>(); col.isTrigger = true; col.size = Vector3.one; } if (needRotation) { colTrans.Rotate(new Vector3(0, 0, 90)); } var normalCollider = colTrans.GetComponent <BoxCollider>(); if (null == normalCollider) { Logger.ErrorFormat("no box attached to collider go"); return(null); } RayCastTarget target = RayCastTargetUtil.AddRayCastTarget(normalCollider.gameObject); normalCollider.gameObject.layer = UnityLayerManager.GetLayerIndex(EUnityLayerName.UserInputRaycast); normalCollider.enabled = true; return(target); }
protected RayCastTarget AddRaycastTarget(GameObject gameObject) { var colliders = gameObject.GetComponentsInChildren <Collider>(); var colliderCount = colliders.Length; bool noInputCastCollider = true; RayCastTarget target = null; for (int i = 0; i < colliderCount; ++i) { var collider = colliders[i]; if (collider.gameObject.layer == UnityLayerManager.GetLayerIndex(EUnityLayerName.UserInputRaycast)) { target = RayCastTargetUtil.AddRayCastTarget(collider.gameObject); noInputCastCollider = false; } } if (noInputCastCollider) { _logger.ErrorFormat("Door {0} has no inputraycast collider.", gameObject.name); } return(target); }
public static void Make(RayCastTarget target, int entityId) { BaseCastData.Make(target, ECastDataType.Player); target.IdList.Add(entityId); }