开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 15

lbzcode/UnityFun

forked from jzt/UnityFun
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
scene.lua 4.64 KB
一键复制 编辑 原始数据 按行查看 历史
陈勇星 提交于 2017年10月19日 20:09 +08:00 . 完善3D视角行走
require "scene.entity"
require "scene.character"
require "data.monster_data"
require "data.main_role_data"
require "data.player_data"
require "data.npc_data"
require("turn_based_combat.tb_combat_unit")
Scene = Scene or class()
function Scene:ctor(sceneId)
assert(sceneId)
self.sceneId = sceneId
self.mainRole = nil
self.entities = {}
self.csScaleFactor = 1
end
function Scene:dtor()
if self.prefabGameObject then
GameObject.Destroy(self.prefabGameObject)
--self.prefabAssetBundleLoader:Release()
end
for k, entity in pairs(self.entities) do
entity:delete()
end
end
function Scene:getSceneId()
return self.sceneId
end
function Scene:setPathfindingMap(config)
if config.pathfinding_type == Pathfinding_Type.AstarMatrix then
local mapInfo = self:readMapInfo(config.astar_matrix_map)
PathfindingSystem.getInstance():setAstarMatrixMap(mapInfo)
elseif config.pathfinding_type == Pathfinding_Type.PotentialField then
else
PathfindingSystem.getInstance().astarMatrixPathfinding = nil
end
end
function Scene:setMapInfo(mapInfo)
assert(mapInfo)
assert(mapInfo.width)
assert(mapInfo.height)
assert(mapInfo.cs_scale)
self.width = mapInfo.width
self.height = mapInfo.height
self.csScaleFactor = mapInfo.cs_scale
end
function Scene:update()
for k, entity in pairs(self.entities) do
if entity.update then
entity:update()
end
end
end
function Scene:addEntity(entity)
table.insert(self.entities, entity)
entity:onEnterScene(self)
end
function Scene:removeEntity(entityId)
local entity = nil
local removeIndex = nil
for k, v in ipairs(self.entities) do
if v.entityId == entityId then
entity = v
removeIndex = k
end
end
if removeIndex ~= nil then
table.remove(self.entities, removeIndex)
entity:onLeaveScene(self)
entity:delete()
end
end
function Scene:getAllEntities()
return self.entities
end
function Scene:getEntityById(entityId)
for k, v in pairs(self.entities) do
if v.entityId == entityId then
return v
end
end
end
function Scene:convertScreenPosToMapPos(x, y)
--2D场景
-- local ray = Camera.main:ScreenPointToRay(Input.mousePosition)
-- local plane = Plane(-Vector3.forward, Vector3(0, 0, -10))
-- local ok, distance = plane:Raycast(ray)
-- if ok then
-- return ray:GetPoint(distance)
-- end
local hitInfo = ScreenPointRaycast(Input.mousePosition, "SceneEntity")
if hitInfo then
return self:convertUnityPosToMapPos(hitInfo.point)
else
print("Warning convertScreenPosToMapPos nil")
end
end
function Scene:convertMapPosToUnityPos(x, y)
return Vector3(x * self.csScaleFactor, 0, y * self.csScaleFactor)
end
function Scene:convertUnityPosToMapPos(pos)
local x = math.floor(pos.x / self.csScaleFactor)
local y = math.floor(pos.z / self.csScaleFactor)
return x, y
end
function Scene:createMainRole(data, loadCallback)
self.mainRole = Character.new(data.entity_id, MainRoleData.getInstance():init(data), EntityType.MainRole, loadCallback)
self:addEntity(self.mainRole)
end
function Scene:createPlayers(data)
for i, playerInfo in ipairs(data) do
local player = Character.new(playerInfo.entity_id, PlayerData.new(playerInfo), EntityType.Player)
self:addEntity(player)
end
end
function Scene:createMonsters(data)
for i, monsterInfo in ipairs(data) do
local monster = Character.new(monsterInfo.entity_id, MonsterData.new(monsterInfo), EntityType.Monster)
self:addEntity(monster)
end
end
function Scene:createNPCs(data)
for i, npcInfo in ipairs(data) do
local npc = Character.new(npcInfo.entity_id, NpcData.new(npcInfo), EntityType.Npc)
self:addEntity(npc)
end
end
function Scene:createTbCombatUnits(data)
for i, unitInfo in ipairs(data) do
local unit = TBCombatUnit.new(10000+unitInfo.unit_id, unitInfo, EntityType.TBCombatUnit)
self:addEntity(unit)
end
end
function Scene:getTbCombatUnits()
local tbCombatUnits = {}
for k, entity in pairs(self.entities) do
if entity.type == EntityType.TBCombatUnit then
table.insert(tbCombatUnits, entity)
end
end
return tbCombatUnits
end
function Scene:removeTbCombatUnits()
for k, entity in pairs(self:getTbCombatUnits()) do
self:removeEntity(entity.entityId)
end
end
function Scene:setAllEntitiesActive(bool)
for k, entity in pairs(self.entities) do
if entity.gameObject then
entity.gameObject:SetActive(bool)
entity:showHUDText(bool)
end
end
end
function Scene:showHUDText(bool)
local bool = bool or true
for k, entity in ipairs(self.entities) do
entity:updateUIPos(bool)
entity:showHUDText(bool)
end
end
function Scene:showCombatUnitBloodbar(bool)
local bool = bool or true
for k, entity in ipairs(self.entities) do
if entity.type == EntityType.TBCombatUnit then
entity:updateUIPos(bool)
entity:showBloodbar(bool)
end
end
end
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/lbzcode/UnityFun.git
git@gitee.com:lbzcode/UnityFun.git
lbzcode
UnityFun
UnityFun
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /