GDPU unity游戏开发 切换视角

简单易懂的unity基础案例。

实验内容 

1、复习场景中物体的基本操作(移动/缩放/旋转等)。

2、在资源商店中搜索名为Planet Earth Free的免费资源,下载并导入项目。

3、在场景中创建一个胶囊体,并编写脚本实现该胶囊体围绕“地球”旋转的效果,同时可以通过空格键切换不同视角。

给胶囊体增加相机组件,并调整胶囊体到合适位置。

改变胶囊体的颜色为红色。

在Assets窗口中创建脚本,命名为rotate,然后输入代码。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rotate: MonoBehaviour
{
    public GameObject earth;
    public Camera playerCamera;
    private float angle = 0f;
    private float orbitSpeed = 0.5f;
    private Vector3 objectPosition;
    private float orbitRadius;
    void Start()
    {
        objectPosition = transform.position;
        orbitRadius = Vector3.Distance(transform.position, Vector3.zero);
    }
    void Update()
    {
        var xpos = orbitRadius * Mathf.Sin(angle);
        var zpos = orbitRadius * Mathf.Cos(angle);
        transform.localPosition = new Vector3(xpos, 0f, zpos);
        angle += orbitSpeed * Time.deltaTime;   //根据每帧的时间间隔来更新角度变量,以模拟物体中心旋转
        transform.LookAt(earth.transform);     //使物体看向earth游戏对象

        if (Input.GetKeyDown(KeyCode.Space))
        {
            playerCamera.enabled = !playerCamera.enabled; //切换playerCamera的状态
        }
    }
}

在windows菜单下找到asset store,然后加到你的资源,接着点package manager进行下载到你的项目中,导入到你当前的项目中的assets文件夹下。

到这里就导入资源包了。接着创建一个胶囊对象,红色材质贴上去,摆放到一个合适的视角。接着再创建一个相机,也可以不用。把脚本拖到胶囊体或相机上。由代码可看出,挂载的对象会绕着某个物体并看向某个物体,还有一个playerCamera属性通过space空格键控制禁用启用。这里我们要看的效果是胶囊体围着球转,还有观察球自转,这样,点一下空格,禁用这个相机,就会自动转换到另一个相机的视角,可以实现视角的切换。然后我们可以先给胶囊体加个相机组件,这样可以通过胶囊体的视角看到球自转。

有一种方法是脚本挂载在相机上,把胶囊体给相机的playerCamera, 这种方法可以实现效果,但是在scene面板可以看出胶囊体是不动的,但在game面板胶囊体是跟着转的,应该是胶囊体的组件跟着转,按空格键也可以切换视角。

你也可以把脚本挂载在胶囊体上,把小的相机给playerCamera,这样就可以实现胶囊体围着球转了,按下空格键代表禁用小相机,这样就切换到胶囊体相机的视角了。这里问一下,为什么不会切换到主相机的视角。要记住,在unity中,相机的depth层级类似与其它一些界面,越大的优先级越高。主相机的层级是-1,而小相机跟胶囊体相机的层级是0,所以一旦禁用小相机,出现的即是胶囊体的视角了。

然后又想一下,把这里的playerCamera改成胶囊体的相机也是可以的。不难想到,同一层级,一旦禁用胶囊体相机视角,肯定出现的就是小相机的视角。有小白会说,把物体的组件挂到物体的脚本也可以切换是为什么,首先要想明白脚本的对象是要做什么,这里的playerCamera就是用空格进行禁用启用这个相机,把它禁用了,岂不是直接到另一个相机视角了。

unity视角基础

相机的层级,层级越大优先级越高,相同层级,如不做任何操作,默认后渲染的优先。

物体可以通过transform.LookAt()看向某个物体。

Align with View :与视图对齐,用于将选定的对象在场景视图中的位置和旋转调整为当前视图的角度和方向。当你的相机跑到千里之外,不妨可以选中物体按f键,再选中相机执行Align with View,就能看到大致的视角了。

Align View to Selected :将视图与所选对象对齐,用于将场景视图的角度和方向调整为所选对象的位置和旋转。当你找到对象发现相距甚远时可以用这个,调整其视角以便完整显示所选对象。

刚入门可以多看看编译器的组件面板,还有菜单,了解用途等等。

实验心得

花了一个月学了编译器的界面基础与代码基础, 也的确很基础。

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值