Ursina恐怖游戏中PointLight定位与亮度调节问题求助
Ursina手电筒灯光问题解决方案:跟随玩家+亮度调节
一、原PointLight配置的核心错误
你的代码里有几个关键问题导致灯光不显示:
parent=camera.ui:camera.ui是2D UI层级的父节点,3D灯光必须挂载到camera或玩家实体上,才能在3D世界中生效color = color.rgba(100, 2, 100, 0):alpha通道设为0会让灯光完全透明,改为255才能正常显示;另外颜色偏紫,建议改成暖白色更符合手电筒效果rotation = (0, 184, 0):PointLight是点光源,向四周均匀发光,没有照射方向属性,rotation设置完全无效- 固定
position:硬编码的位置不会跟随玩家,需设置为相机/玩家的相对位置
二、实现灯光跟随玩家的两种方法
方法1:直接挂载父节点(无需update函数,推荐)
将灯光的parent设为相机或玩家实体,灯光会自动同步位置和朝向:
# 用SpotLight实现手电筒聚光效果(比PointLight更适合) flashlight = SpotLight( parent=camera, position=(0, 0, -1), # 相机前方1单位的位置,贴合手电筒握持感 color=color.rgba(255,255,220,255), intensity=3, shadows=True, angle=25, # 聚光角度,数值越小光线越集中 distance=20 # 光照有效距离 ) # 如果坚持用PointLight(仅做跟随点光源,无定向效果) point_light = PointLight( parent=camera, position=(0,0,-2), color=color.white, intensity=2, shadows=True )
方法2:用update函数动态同步(适合需要额外逻辑的场景)
如果需要自定义偏移或动态调整逻辑,在update函数中同步灯光位置和朝向:
from ursina import * player = FirstPersonController(position=(0,0,0)) flashlight = SpotLight(color=color.white, shadows=True) def update(): # 将灯光位置设为玩家前方1单位 flashlight.position = player.position + player.forward * 1 # 让灯光朝向玩家前方10单位的点,实现定向照射 flashlight.look_at(player.position + player.forward * 10)
三、调节灯光亮度
所有灯光类型(PointLight/SpotLight/DirectionalLight)都通过intensity属性调节亮度,默认值为1,数值越大亮度越高:
# 例:将手电筒亮度设为默认的3倍 flashlight.intensity = 3
四、完整可运行代码示例
from ursina import * app = Ursina() # 创建第一人称玩家 player = FirstPersonController( model='cube', color=color.gray, position=(0, 0, 0), speed=5 ) # 场景环境(用于测试光照效果) ground = Entity(model='plane', scale=30, color=color.dark_gray, texture='white_cube', texture_scale=(30,30)) walls = [ Entity(model='cube', position=(10,0,0), scale=(1,3,30), color=color.gray), Entity(model='cube', position=(-10,0,0), scale=(1,3,30), color=color.gray), Entity(model='cube', position=(0,0,10), scale=(20,3,1), color=color.gray), ] # 手电筒聚光灯 flashlight = SpotLight( parent=camera, position=(0, 0, -1), color=color.rgba(255,255,220,255), intensity=3, shadows=True, angle=25, distance=20 ) app.run()
内容的提问来源于stack exchange,提问作者Onewaypie
相关产品推荐
相关产品推荐

