/// <summary> /// 实际创建Actor /// </summary> protected override void CreateActor() { base.CreateActor(); // 位置这里先填Vector3.zero,等创建好之后再直接设置其移动信息 ActorManager.Instance.PushUnitCacheData(ActorHelper.CreateUnitCacheInfo(Info, Vector3.zero)); }
/// <summary> /// 实际创建Actor /// </summary> protected override void CreateActor() { base.CreateActor(); Vector3 pos_born = Vector3.zero; if (AppearInfo != null) { var unit_scale = GlobalConst.UnitScale; var x = AppearInfo.pos.px * unit_scale; var z = AppearInfo.pos.py * unit_scale; pos_born = new Vector3(x, RoleHelp.GetHeightInScene(Info.actor_id, x, z), z); } var cache_info = ActorHelper.CreateUnitCacheInfo(Info, pos_born); ActorManager.Instance.PushUnitCacheData(cache_info); }
protected virtual UnitCacheInfo CreateUnitCacheData(S2CNwarInitInfo player_info) { var born_pos = RoleHelp.GetPositionInScene(ActorHelper.RoleIdToTypeId(player_info.brief.rid), player_info.init_pos.px * GlobalConst.UnitScale, player_info.init_pos.py * GlobalConst.UnitScale); var init_data = ActorHelper.CreateUnitCacheInfo(player_info.brief, born_pos); // 读取出生点朝向 List <Neptune.Tag> tags = Neptune.DataHelper.GetTagListByType(Neptune.DataManager.Instance.Data, "born_pos"); if (tags.Count > 0) { init_data.Rotation = tags[0].Rotation; } if (LocalPlayerManager.Instance.BornRotation.Equals(Quaternion.identity) == false) { init_data.Rotation = LocalPlayerManager.Instance.BornRotation; LocalPlayerManager.Instance.BornRotation = Quaternion.identity; } return(init_data); }