当前位置: 首页 > news >正文

(转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation

虚幻引擎 3 中供玩家使用的相机系统由三个主要类组成:Camera、Pawn 和 PlayerController。这些类都会交互以控制位置、旋转量以及任何其他在游戏过程中应该用于玩家相机的特效。
PlayerController 有一个对被使用的 Camera 以及被控制的 Pawn 的引用。PlayerController 会接收玩家的输入数据并将其用于更新它正在控制的 Pawn 的位置和旋转。默认情况下,Camera 会将其更新传递给 Pawn,它反过来会更新相机的位置和旋转。
通过修改这些类中的一个或多个及其交互方式,可以将玩家的相机设置为使用任何适合于您正在制作的游戏类型的视角向玩家显示这个游戏世界。默认情况下,玩家的相机会使用第一人称,并提供可以将其触发为一个第三人称肩后镜头视角的选项。可以轻松地将它改为自上而下视角、等角视图、横向卷轴视角或任何其他您的游戏可能需要的视图。

 

上面说了Vector
在空间中的一个唯一的三维点或者向量,具有X、 Y、Z分量。
XYZ是什么?读过书的都知道XYZ轴(没文化的估计不会来做游戏了)


图画的实在不好看.....Vector的位置如图所示
计算世界原点o到vector的位置可以用公式
根号(X平方+Y平方+Z平方)
说的那么麻烦 其实可以直接用虚幻语言定义好的Vsize 

function PostBeginPlay()
{

//DemoLocation.Z=300.0;
//SetLocation(Location+DemoLocation);
SetLocation(Location+vect(30,20,100));

`log("vector:"@Vsize(Location));
}


如果要取两只ACTOR的距离,可以用
距离=VSize(A.location-B.location)
也可以B-A
(扯谈一下,COD等类型游戏的目标点寻路显示距离)

 

Rotator 旋转

先来看一下我的代码
class MyUSGame extends actor
placeable;  


function PostBeginPlay()
{

SetLocation(Location+vect(30,20,100));

SetRotation(Rotation+rot(100,100,3000));


`log("vector:"@Vsize(Location));

`log("rotation:"@rotation);
}

defaultproperties
{


Begin Object class="SpriteComponent" Name=flag
Sprite=Texture2D'EditorResources.flag1'
End Object
Components.Add(flag)

//加个箭头 好辨认
begin object class="arrowcomponent" name=ac
end object
Components.Add(ac)

}
这样的时候是这样的



在编辑器里转个几十度

function PostBeginPlay()
{

`log("rotation:"@rotation);
}



明明转了76度可为什么有这么高的度数?
这就涉及到一个单位
在虚幻单位中
360度=65536
90度=16384
1度~=182.0444
不服口算看我转的这个量是不是等于这个数
 


Rotation几个值的旋转方向
 
请教版主一个问题:
我自定义了一个UDNPlayerController类,class UDNPlayerController extends UDKPlayerController。其中有两条语句,就是取得玩家鼠标输入的旋转,如下:
DeltaRot.Yaw=PlayerInput.aTurn; 

DeltaRot.Pitch= PlayerInput.aLookUp;
第一条语句可以执行,即可以左右旋转;但第二条语句没有任何效果,即无法上下旋转,请我是怎么回事呢?
 

 

转载于:https://www.cnblogs.com/wodehao0808/p/6104795.html

相关文章:

  • Excel教程(10) - 逻辑运算符
  • 无法对 索引 'IndexName' 执行 删除,因为它不存在,或者您没有所需的权限。
  • HashTable, HashSet, HashMap的区别
  • JavaScript神一样的变量系统
  • esayui
  • 我在使用eclipse配置Tomcat服务器的时候发现,默认情况下Tocmat把我们部署的项目放在了workspaces下面,而不是像Myeclipse默认的那样放在tomcat的安装路径下。...
  • 去除字符串中的emoji字符
  • Thinkphp框架 -- 短信接口验证码
  • pip 使用国内源安装第三方库
  • vue.js入门(3)——组件通信
  • Java线程专栏文章汇总(转)
  • 快速破解哈希密文findmyhash
  • JDBC与Hibernate中SQL语句参数设置的顺序问题
  • 数据库备份通用脚本
  • ehcache memcache redis 三大缓存
  • 4. 路由到控制器 - Laravel从零开始教程
  • Android系统模拟器绘制实现概述
  • CentOS 7 修改主机名
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Linux链接文件
  • mysql 数据库四种事务隔离级别
  • Python_OOP
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • spring学习第二天
  • vue--为什么data属性必须是一个函数
  • 闭包--闭包作用之保存(一)
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 微信小程序设置上一页数据
  • 我的面试准备过程--容器(更新中)
  • 学习HTTP相关知识笔记
  • mysql面试题分组并合并列
  • #ifdef 的技巧用法
  • #Linux(帮助手册)
  • #NOIP 2014# day.2 T2 寻找道路
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (13):Silverlight 2 数据与通信之WebRequest
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (6)添加vue-cookie
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C#)一个最简单的链表类
  • (java)关于Thread的挂起和恢复
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)正点原子I.MX6ULL u-boot移植
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (三)c52学习之旅-点亮LED灯
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)项目管理杂谈-我所期望的新人
  • *** 2003