这个操作就是让场景中生成的人物在ui上面显示出来,可以不需要代码,只需要通过设置实现,也可以用代码实现
一.通过设置实现,无需代码
1.首先在场景中右键创建一个相机

2.在Project里创建一个RenderTexture

3.把创建好的RenderTexture挂载到相机上面,记得调整相机的位置能看到玩家

4.创建一个材质球

5.把创建好的RenderTexture拖到材质球上,拖完之后再去改材质球的Shader,模式改为UI/Default

6.场景里创建一个Image,把弄好的材质球挂到Image的material上面
这个时候就完成了,但是相机照出会把所有看到的都显示出来,如果不想让他显示别的只想显示玩家,就把相机的ClearFlags模式改一下,改成SolidColor,这样就只会显示玩家了
二.通过代码实现,只需要创建Image
代码
//要显示的玩家
public GameObject player;
//相机
Camera camera;
void Start()
{
GameObject cam = new GameObject("cam");//新建一个空物体
camera = cam.AddComponent<Camera>();//添加相机组件
camera.transform.position = player.transform.position + player.transform.forward+Vector3.up*0.5f;//调整相机的位置
camera.transform.LookAt(player.transform.position + Vector3.up * 0.5f);//相机一直看向玩家
camera.clearFlags = CameraClearFlags.SolidColor;//改变相机模式,保证显示的只有玩家
RenderTexture texture = new RenderTexture(2500,2500,0);//新建一个RenderTexTure 参数是像素,自己调整
camera.targetTexture = texture;//把生成好的RenderTexture设置到相机上面
Material material = new Material(Shader.Find("UI/Default"));//新建一个材质球
material.mainTexture = texture;//把弄好的RenderTexture放到材质球上
GetComponent<Image>().material = material;//最后一步把Image上面的material设置成我们写好的材质球
}
代码直接挂到Image上就可以