Python新手也能玩转3D!用Ursina引擎5分钟创建你的第一个3D世界(附完整代码)
Python新手也能玩转3D!用Ursina引擎5分钟创建你的第一个3D世界(附完整代码)
第一次接触3D编程时,我被那些复杂的坐标系和数学公式吓退了——直到遇见Ursina。这个用Python编写的3D引擎,就像乐高积木一样简单直观。不需要理解矩阵变换,不用研究着色器原理,只要会写print("Hello World"),你就能在咖啡凉透前搭建出自己的3D场景。
1. 零基础搭建3D环境
在终端里粘贴这行魔法咒语,你的Python就会获得3D超能力:
pip install ursina安装完成后,新建一个first_3d.py文件,输入以下代码:
from ursina import * app = Ursina() app.run()按下F5运行,你会看到一个灰色窗口——这就是你的空白画布。别小看这三行代码,它们已经完成了:
- 创建3D渲染窗口
- 初始化游戏循环
- 建立事件处理系统
如果遇到报错,通常是Python环境问题。建议使用Python 3.7+版本,并确保pip已更新。
2. 创建第一个3D物体
让我们在虚拟世界里放个彩色立方体。修改代码如下:
from ursina import * app = Ursina() # 添加红色立方体 cube = Entity( model='cube', color=color.red, scale=(2,1,3), rotation=(45,0,0) ) app.run()运行后会看到一个倾斜的红色长方体。通过调整参数,你可以改变这个物体的:
- model:基础形状(cube/sphere/quad等)
- position:(x,y,z)坐标
- rotation:绕各轴旋转角度
- scale:尺寸缩放比例
- texture:贴图文件路径
3. 构建完整3D场景
真正的3D世界需要地面和参照物。试试这个增强版代码:
from ursina import * class MyScene(Entity): def __init__(self): super().__init__() # 蓝色网格地面 ground = Entity( model='grid', scale=20, color=color.blue, rotation_x=90 ) # 坐标轴 axes = Entity( model=Mesh( vertices=[(0,0,0),(5,0,0),(0,0,0),(0,5,0),(0,0,0),(0,0,5)], mode='line', thickness=3 ), color=color.white ) # 会旋转的彩色立方体 self.cube = Entity( model='cube', color=color.rainbow(0), position=(0,1,0) ) def update(self): self.cube.rotation_y += 1 self.cube.color = color.rainbow(time.time()%1) app = Ursina() scene = MyScene() EditorCamera() # 添加鼠标控制视角 app.run()这段代码实现了:
- 20x20的网格地面
- XYZ三色坐标轴
- 自动旋转的彩虹立方体
- 鼠标拖动查看场景功能
4. 进阶技巧与资源推荐
掌握基础后,可以尝试这些酷炫效果:
动态生成地形:
from ursina.shaders import basic_lighting_shader terrain = Entity( model=Terrain('heightmap.jpg'), scale=(50,10,50), shader=basic_lighting_shader )第一人称控制器:
player = FirstPersonController() player.gravity = 0.5物理碰撞系统:
from ursina.prefabs.platformer_controller_2d import PlatformerController2d player = PlatformerController2d() wall = Entity(model='cube', collider='box')推荐学习资源:
- Ursina官方文档
- 社区示例库
ursina/standard_shaders - GitHub搜索
ursina showcase项目
记得保存你的作品,下次我们可以给场景添加动画和交互功能。当你看到自己创造的3D世界在屏幕上活起来时,那种成就感绝对值得发个朋友圈——"零基础Python小白也能做3D游戏啦!"
