import sys
try:
sys.path.append('D:\work_software\Carla\Carla_0.9.10\CARLA_0.9.10\WindowsNoEditor\PythonAPI\carla\dist\carla-0.9.10-py3.7-win-amd64.egg')
except IndexError:
pass
import carla
import random
import time
# 创建 client
client = carla.Client("localhost", 2000)
client.set_timeout(5.0)
# 创建 world
world = client.get_world()
# 创建 vehicle actor
blueprint_library = world.get_blueprint_library()
vehicle_blueprint = random.choice(blueprint_library.filter("vehicle.*.*"))
vehicle_transform = carla.Transform(carla.Location(x = 100, y = 200 , z = 10), carla.Rotation(yaw = -180))
vehicle_actor = world.spawn_actor(vehicle_blueprint, vehicle_transform)
# 设置 vehicle actor 为自动驾驶模式
vehicle_actor.set_autopilot()
#(3)Types of actorss
# ------------------------------------------------------------------------------------------------------------------------
# 2.观众 -- Spectator
# 注:由虚幻引擎放置以提供游戏内的视角,它可用于移动模拟器窗口的视图
# 示例:以下示例将移动观众actor,将视角指向所需的车辆
spectator = world.get_spectator() # 函数【carla.World.get_spectator()】:
# 作用:返回一个观众型的actor,观众是虚幻引擎创建的一种特殊类型的actor,通常ID=0,充当摄像机并控制模拟器窗口中的视图
# 返回值:【类 carla.Actor】
print("\n", spectator) # Actor(id=1, type=spectator)
print(type(spectator)) # <class 'carla.libcarla.Actor'>
spectator_location = vehicle_transform.location + carla.Location(z = 50)
spectator_rotation = carla.Rotation(pitch = -90)
spectator.set_transform(carla.Transform(spectator_location, spectator_rotation))
# 总结一下【spectator actor】的创建过程:
# 注1:蓝图库中是没有【spectator】的蓝图的,所以创建【spectator】不能用函数【carla.World.spawn_actor()】
# 注2:真正创建【spectator】的方法如下:
# (1)通过函数【carla.World.get_spectator()】获取类型为【carla.Actor】的【spectator】actor --- 注意:其他的actor都有对应的类型,如【carla.Vehicle】/【carla.Sensor】,但是【spectator actor】没有,他的类型就是基类【carla.Actor】
# (2)指定【spectator】这个actor的生成点,利用函数【carla.Transform( carla.Location(), carla.Rotation() )】
注:my_test_script_5.py