码迷,mamicode.com
首页 > 编程语言 > 详细

Unity3d - RPG项目学习笔记(五)

时间:2016-08-21 16:41:03      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:

前期工程实现了角色移动,现需要完成镜头的跟随及控制。

一、镜头的跟随

思路很简单,首先取得镜头初始与角色的距离向量值,然后让相机与角色持续保持该向量距离即可。脚本如下:

NameSpace FollowPlayer

private Transform player;

private Vector3 offsetPosition;

void Start( )

{

    player = GameOject.FindGameObjectWithTag("player").transform;

    offsetPosition = transform.position - player.position;

}

Void Update( )

{

    transform.position = player.position + offsetPosition;

}

以上便实现了镜头跟随角色移动的效果。

二、镜头的控制

镜头的控制分解为镜头拉伸和旋转。

2.1 镜头的拉伸

镜头的拉伸本质就是变更镜头于角色间的向量差,在上述脚本生效后,镜头于角色的向量差就是offsetPosition,而且是一个定值,那么现在就是需要把这个定值根据操作进行变化而已。

使用Input.GetAxis("Mouse ScrollWheel")来记录该值。

对上述脚本进行更新为:

NameSpace FollowPlayer

public float scrollspeed = 5;

void SrollView( )

{

    float distance = offsetPosition.magnitude; //却得offsetPosition的向量方差

    distance += Input.GetAxis("Mouse ScrollWheel"); //根据鼠标中键变更向量方差值

    offsetPosition = offsetPosition.normalized * distance; //先将向量变为标准向量,再乘以方差,变成目标距离向量

}

在void Upadate( )中调用就可以了

 

Unity3d - RPG项目学习笔记(五)

标签:

原文地址:http://www.cnblogs.com/yanbenxin/p/5792846.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!