【从安装到打包】基于Unity2018实现的全景交互方案全流程(7)
作者:互联网
在Assets文件夹里右键Create一个Folder,取名为Prefab,然后将Canvas拉到Prefab文件夹里
保存一下,打开第二个场景,将Prefab文件夹里刚刚拉进来的Canvas拖入到Hierarchy面板里,然后右键UI- EventSystem,保存一下,将其他的场景同样这样做。这样就实现了通过底部栏其替换场景的功能。可以点上面中间的三角形运行按钮,运行起来进行测试一下。
打开Script文件夹,右键Create-C# Script,创建一个脚本,起名为CameraContral,将其挂在MainCamera上
双击打开CameraContral,写入以下代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraContral : MonoBehaviour
{
private Vector2 offs;
public float speed = 2;//旋转速度
private float mouseSensitivity = 100f;
public Transform playerBody;
float xRotation = 0f;
void Start()
{
offs = transform.eulerAngles;
}
void Update()
{
if (Input.GetMouseButton(0)) //用户交互的键入 0代表鼠标左键,1代表鼠标右键
{
offs += new Vector2(Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime * -2f, Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime * 2f) * speed * 1.5f; //摄像机旋转的控制
transform.eulerAngles = offs;
}
}
}
保存,返回Unity,将相机拉到相应的引用的位置,挂在上面,现在就实现了按住左键旋转镜头的功能,可以点击播放按钮进行测试,然后在其他场景里也都把这个脚本先挂在相机上,然后再把相机挂到引用的位置。
到这一步,仅使用底部导航窗口进行场景切换的功能就完成了
下一步我们要实现点击场景里的指引标识进行场景切换
首先分析一下需求:1、将标志放在场景里对应的位置,为了让距离大致相等,我们可以创建一个球体,因为球体在内部向外看是看不到的,因此我们可以将标志放在球壳上,这样就可以保证标志与摄像机的距离相等。2、我们需要让标志始终面朝摄像机。3、我们让标志能够检测到自己被鼠标点击了。4、给标志加一个微动的动画效果就更好了。
打开第一个场景,取消2D模式,选中左侧面板上的MainCamera,在Scene面板中按一下F键将视角拉近到摄像机的位置。
在左侧面板右键 3D Object – Sphere,就创建了一个球,我们可以用R 缩放工具稍微放大一点点
在这里我发现了一个问题,那就是摄像机的位置不在坐标原点上,我们需要手动调整一下。选中摄像机,在右侧面板上Transform组件上右键选择Reset进行重置位置,其余所有场景均需要坐着一个操作。也可以检查一下刚才创建的球是否在坐标原点,不是的话也要重置一下。
标签:offs,场景,面板,摄像机,文件夹,右键,Unity2018,交互,打包 来源: https://blog.csdn.net/Byou2233/article/details/121977666