public void set_position(KBEngine.Entity entity) { if (entity.renderObj == null) return; Vector3 v = (Vector3)entity.getDefinedProperty("position"); ((UnityEngine.GameObject)entity.renderObj).GetComponent<GameEntity>().destPosition = v; ((UnityEngine.GameObject)entity.renderObj).GetComponent<GameEntity>().position = v; if (entity.isPlayer())//第一次主角获取位置时,调整摄像头 { Camera.main.GetComponent<SmoothFollow>().FollowUpdate(); if (isFirstPos) { Camera.main.GetComponent<SmoothFollow>().ResetView(); isFirstPos = false; } } }
public void onEnterWorld(KBEngine.Entity entity) { if (entity.isPlayer()) return; float y = entity.position.y; if (entity.isOnGround) y = 0.0f; if (entity.className == "Gate") { entity.renderObj = Instantiate(gatePerfab, new Vector3(entity.position.x, y, entity.position.z), Quaternion.Euler(new Vector3(entity.direction.y, entity.direction.z, entity.direction.x))) as UnityEngine.GameObject; ((UnityEngine.GameObject)(entity.renderObj)).GetComponent<GameEntity>().entityDisable(); } else if (entity.className == "Monster") { entity.renderObj = Instantiate(otherPlayerPerfab, new Vector3(entity.position.x, y, entity.position.z), Quaternion.Euler(new Vector3(entity.direction.y, entity.direction.z, entity.direction.x))) as UnityEngine.GameObject; } else if (entity.className == "DroppedItem") { entity.renderObj = Instantiate(droppedItemPerfab, new Vector3(entity.position.x, y, entity.position.z), Quaternion.Euler(new Vector3(entity.direction.y, entity.direction.z, entity.direction.x))) as UnityEngine.GameObject; } else if (entity.className == "Avatar") { entity.renderObj = Instantiate(otherPlayerPerfab, new Vector3(entity.position.x, y, entity.position.z), Quaternion.Euler(new Vector3(entity.direction.y, entity.direction.z, entity.direction.x))) as UnityEngine.GameObject; } else if (entity.className == "NPC") { entity.renderObj = Instantiate(otherPlayerPerfab, new Vector3(entity.position.x, y, entity.position.z), Quaternion.Euler(new Vector3(entity.direction.y, entity.direction.z, entity.direction.x))) as UnityEngine.GameObject; } ((UnityEngine.GameObject)entity.renderObj).name = entity.className + "_" + entity.id; set_position(entity); set_direction(entity); //object speed = entity.getDefinedProperty("moveSpeed"); //if (speed != null) // set_moveSpeed(entity, speed); object state = entity.getDefinedProperty("state"); if (state != null) set_state(entity, state); //object modelScale = entity.getDefinedProperty("modelScale"); //if (modelScale != null) // set_modelScale(entity, modelScale); object name = entity.getDefinedProperty("name"); if (name != null) set_entityName(entity, (string)name); object hp = entity.getDefinedProperty("HP"); if (hp != null) set_HP(entity, hp); object hpMax = entity.getDefinedProperty("HP_Max"); if (hpMax != null) set_HP_Max(entity, hpMax); object equipWeapon = entity.getDefinedProperty("equipWeapon"); if (equipWeapon != null) set_equipWeapon(entity, (Int32)equipWeapon); }
public void set_HP_Max(KBEngine.Entity entity, object v) { if (entity.renderObj != null) { GameEntity ge = ((UnityEngine.GameObject)entity.renderObj).GetComponent<GameEntity>(); ge.hpMax = (Int32)v; ge.hp = (Int32)entity.getDefinedProperty("HP"); if (getUITarget() && getUITarget().GE_target == ge) getUITarget().UpdateTargetUI(); else if (ui_targetPlayer && ui_targetPlayer.GE_target == ge) ui_targetPlayer.UpdateTargetUI(); } }
public void set_HP_Max(KBEngine.Entity entity, object v) { if(entity.renderObj != null) { ((UnityEngine.GameObject)entity.renderObj).GetComponent<GameEntity>().hp = (Int32)entity.getDefinedProperty("HP") + "/" + (Int32)v; } }
public void onAvatarEnterWorld(UInt64 rndUUID, Int32 eid, KBEngine.Avatar avatar) { if (!avatar.isPlayer()) { return; } createPlayer(); //UI.inst.info("loading scene...(加载场景中...)"); Debug.Log("loading scene..."); //object speed = avatar.getDefinedProperty("moveSpeed"); //if (speed != null) // set_moveSpeed(avatar, speed); object state = avatar.getDefinedProperty("state"); if (state != null) set_state(avatar, state); //object modelScale = avatar.getDefinedProperty("modelScale"); //if (modelScale != null) // set_modelScale(avatar, modelScale); object name = avatar.getDefinedProperty("name"); if (name != null) set_entityName(avatar, (string)name); object hp = avatar.getDefinedProperty("HP"); if (hp != null) set_HP(avatar, hp); object hpMax = avatar.getDefinedProperty("HP_Max"); if (hpMax != null) set_HP_Max(avatar, hpMax); //设置头像属性 UnityEngine.GameObject ptarget = UnityEngine.GameObject.FindGameObjectWithTag("TargetPlayer"); if (ptarget) { ui_targetPlayer = ptarget.GetComponent<UI_Target>(); } if (ui_targetPlayer) { ui_targetPlayer.GE_target = player.GetComponent<GameEntity>(); ui_targetPlayer.UpdateTargetUI(); } //end UnityEngine.GameObject canvas = UnityEngine.GameObject.FindGameObjectWithTag("Canvas"); UnityEngine.GameObject panel_state = null; if (canvas.transform.Find("Panel - State") != null) panel_state = canvas.transform.Find("Panel - State").gameObject; if (panel_state != null) { UI_AvatarState avaterState = panel_state.GetComponent<UI_AvatarState>(); object attack_max = avatar.getDefinedProperty("attack_Max"); if (attack_max != null) avaterState.setAttackMax((Int32)attack_max); object attack_min = avatar.getDefinedProperty("attack_Min"); if (attack_min != null) avaterState.setAttackMin((Int32)attack_min); object defence = avatar.getDefinedProperty("defence"); if (defence != null) avaterState.setDefence((Int32)defence); object rating = avatar.getDefinedProperty("rating"); if (rating != null) avaterState.setRating((Int32)rating); object dodge = avatar.getDefinedProperty("dodge"); if (dodge != null) avaterState.setDodge((Int32)dodge); object strength = avatar.getDefinedProperty("strength"); if (strength != null) avaterState.setStrength((Int32)strength); object dexterity = avatar.getDefinedProperty("dexterity"); if (dexterity != null) avaterState.setDexterity((Int32)dexterity); object stamina = avatar.getDefinedProperty("stamina"); if (stamina != null) avaterState.setStamina((Int32)stamina); object exp = avatar.getDefinedProperty("exp"); if (exp != null) avaterState.setExp((UInt64)exp); object level = avatar.getDefinedProperty("level"); if (level != null) avaterState.setLevel((UInt16)level); } object equipWeapon = avatar.getDefinedProperty("equipWeapon"); if (equipWeapon != null) set_equipWeapon(avatar, (Int32)equipWeapon); SkillBox.inst.initSkillDisplay(); }
//1: 太远, 2:冷却,3:已死亡 public int validCast(KBEngine.Entity caster, SCObject target) { float dist = Vector3.Distance(target.getPosition(), caster.position); if (dist > canUseDistMax) return 1; if (restCoolTimer < coolTime) return 2; if (((SByte)(caster.getDefinedProperty("state"))) == 1) return 3; return 0; }
public void onEnterWorld(KBEngine.Entity entity) { if(enterSpace == false) { pendingEnterEntityIDs.Add(entity.id); return; } Asset newasset = Scene.findAsset(entity.getDefinedProperty("modelID") + ".unity3d", true, ""); newasset.createAtScene = loader.inst.currentSceneName; SceneEntityObject obj = new SceneEntityObject(); obj.kbentity = entity; if(entity.isPlayer()) obj.createPlayer(); else obj.create(); entity.renderObj = obj; Scene scene = null; if(!loader.inst.scenes.TryGetValue(loader.inst.currentSceneName, out scene)) { Common.ERROR_MSG("KBEEventProc::onEnterWorld: not found scene(" + loader.inst.currentSceneName + ")!"); return; } newasset.loadLevel = Asset.LOAD_LEVEL.LEVEL_IDLE; obj.asset = newasset; obj.idkey = "_entity_" + entity.id; obj.position = entity.position; obj.eulerAngles = new Vector3(entity.direction.y, entity.direction.z, entity.direction.x); obj.destDirection = obj.eulerAngles; object name = entity.getDefinedProperty("name"); if(name != null) obj.setName((string)name); object hp = entity.getDefinedProperty("HP"); if(hp != null) obj.updateHPBar((Int32)hp, (Int32)entity.getDefinedProperty("HP_Max")); object state = entity.getDefinedProperty("state"); if(state != null) set_state(entity, state); object modelScale = entity.getDefinedProperty("modelScale"); if(modelScale != null) set_modelScale(entity, modelScale); object speed = entity.getDefinedProperty("moveSpeed"); if(speed != null) { set_moveSpeed(entity, speed); } if(entity.className == "Avatar") newasset.unloadLevel = Asset.UNLOAD_LEVEL.LEVEL_FORBID; newasset.refs.Add(obj.idkey); scene.addSceneObject(obj.idkey, obj); if(newasset.isLoaded || newasset.bundle != null) { obj.Instantiate(); newasset.refs.Remove(obj.idkey); } else { loader.inst.loadPool.addLoad(newasset); loader.inst.loadPool.start(); } }
public void set_position(KBEngine.Entity entity) { if(entity.renderObj != null) { Common.calcPositionY(entity.position, out entity.position.y, false); ((SceneObject)entity.renderObj).position = entity.position; ((SceneEntityObject)entity.renderObj).destPosition = entity.position; } if(entity.isPlayer() == false) return; entity.position = (Vector3)entity.getDefinedProperty("position"); RPG_Controller.initPos.x = entity.position.x; RPG_Controller.initPos.y = entity.position.y; RPG_Controller.initPos.z = entity.position.z; if(RPG_Controller.instance != null) { RPG_Controller.instance.transform.position = RPG_Controller.initPos; Common.DEBUG_MSG("KBEEventProc::set_position: entity.position=" + entity.position + " " + entity.getDefinedProperty("position") + ", RPG_Controller.position=" + RPG_Controller.instance.transform.position); } }
public void set_MP_Max(KBEngine.Entity entity, object v) { object vv = entity.getDefinedProperty("MP"); if(entity.isPlayer()) { game_ui_autopos.updatePlayerBar_MP(vv, v); } else { game_ui_autopos.updateTargetBar_MP(vv, v); } }
public void set_MP(KBEngine.Entity entity, object v) { object vv = entity.getDefinedProperty("MP_Max"); if(entity.renderObj != null) { object oldvv = entity.getDefinedProperty("old_MP"); if(oldvv != null) { Int32 diff = (Int32)vv - (Int32)oldvv; if(diff > 0) { ((SceneEntityObject)entity.renderObj).addMP(diff); } entity.setDefinedProperty("old_MP", vv); } else entity.addDefinedProperty("old_MP", vv); } if(entity.isPlayer()) { game_ui_autopos.updatePlayerBar_MP(v, vv); } else { game_ui_autopos.updateTargetBar_MP(v, vv); } }