查看: 203|回复: 7

[编程指南] 【2. 配置输入以控制相机 | Unreal Engine】

[复制链接]

1

主题

273

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
73038
发表于 2016-6-27 00:55:15 | 显示全部楼层 |阅读模式



上一步
下一步



   
编程指南主页


我们需要确定相机控制所需进行的操作,然后进行相应设置。 对这个项目,让我们在鼠标右键按住不放的时候来缩短跟随距离并放大视野。 让我们同时使用鼠标来控制视角,并使用WASD键来控制 Pawn 的移动。 要完成此内容,我们应打开 Unreal Engine(虚幻引擎) 编辑器中的 Edit(编辑) 下拉菜单的 Project Settings(项目设置) 。

EditProjectSettings.jpg




我们需要按照如下方式来定义一个 Action Mapping(动作映射) 和四个 Axis Mappings(坐标轴映射) :



动作映射放大鼠标右键


坐标轴映射向前移动W1.0S-1.0向右移动A-1.0D1.0相机倾斜MouseY1.0相机偏转MouseX1.0
InputConfig.jpg





如果您想要了解更多关于输入映射的原理,您可以查看玩家输入和Pawns教程。



现在我们已经完成了对输入的定义,需要写一些代码来对其进行响应。 我们返回 Visual Studio 来进行下一步的工作。


正在开发中的代码


PawnWithCamera.h

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.#pragma once#include "GameFramework/Pawn.h"#include "PawnWithCamera.generated.h"UCLASS()class HOWTO_PLAYERCAMERA_API APawnWithCamera : public APawn{    GENERATED_BODY()public:    // 设置此pawn属性的默认值    APawnWithCamera();    // 当游戏开始或生成时调用    virtual void BeginPlay() override;    // 在每一帧调用    virtual void Tick( float DeltaSeconds ) override;    // 调用以绑定功能到输入    virtual void SetupPlayerInputComponent(class UInputComponent* InputComponent) override;protected:    UPROPERTY(EditAnywhere)    USpringArmComponent* OurCameraSpringArm;    UCameraComponent* OurCamera;};
PawnWithCamera.cpp

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.#include "HowTo_PlayerCamera.h"#include "PawnWithCamera.h"// 设置默认值APawnWithCamera::APawnWithCamera(){    // 将此pawn设置为在每一帧都调用Tick()。  如果您不需要这项功能,您可以关闭它以改善性能。    PrimaryActorTick.bCanEverTick = true;    //创建组件    RootComponent = CreateDefaultSubobjectUSceneComponent(TEXT("RootComponent"));    OurCameraSpringArm = CreateDefaultSubobjectUSpringArmComponent(TEXT("CameraSpringArm"));    OurCameraSpringArm-AttachTo(RootComponent);    OurCameraSpringArm-SetRelativeLocationAndRotation(FVector(0.0f, 0.0f, 50.0f), FRotator(-60.0f, 0.0f, 0.0f));    OurCameraSpringArm-TargetArmLength = 400.f    OurCameraSpringArm-bEnableCameraLag = true;    OurCameraSprintArm-CameraLagSpeed = 3.0f    OurCamera = CreateDefaultSubobjectUCameraComponent(TEXT("GameCamera"));    OurCamera-AttachTo(OurCameraSpringArm, USpringArmComponent::SocketName);    //控制默认玩家    AutoPossessPlayer = EAutoReceiveInput::Player0;}// 当游戏开始或生成时调用void APawnWithCamera::BeginPlay(){    Super::BeginPlay();}// 在每一帧调用void APawnWithCamera::Tick( float DeltaTime ){    Super::Tick( DeltaTime );}// 调用以绑定功能到输入void APawnWithCamera::SetupPlayerInputComponent(class UInputComponent* InputComponent){    Super::SetupPlayerInputComponent(InputComponent);}


   
上一步
下一步



   
编程指南主页
回复

使用道具 举报

0

主题

892

帖子

2909

积分

vip会员

Rank: 1

积分
2909
发表于 2016-7-2 19:36:47 来自手机 | 显示全部楼层
什么鬼???看着很不错的样子啊!
回复 支持 反对

使用道具 举报

0

主题

826

帖子

2765

积分

vip会员

Rank: 1

积分
2765
发表于 2016-7-3 19:58:43 来自手机 | 显示全部楼层
挺不错的!就是不知道价格
回复 支持 反对

使用道具 举报

0

主题

897

帖子

2983

积分

vip会员

Rank: 1

积分
2983
发表于 2016-7-4 10:43:40 | 显示全部楼层
嗯,这个资源特别的好啊,赶紧下来收藏起来。
回复 支持 反对

使用道具 举报

0

主题

812

帖子

2678

积分

vip会员

Rank: 1

积分
2678
发表于 2016-7-8 10:28:48 来自手机 | 显示全部楼层
好东西这么多....
回复 支持 反对

使用道具 举报

0

主题

867

帖子

2874

积分

vip会员

Rank: 1

积分
2874
发表于 2016-7-16 17:23:05 | 显示全部楼层
看看有近期需要的
回复 支持 反对

使用道具 举报

0

主题

922

帖子

2999

积分

vip会员

Rank: 1

积分
2999
发表于 2016-7-17 16:43:01 来自手机 | 显示全部楼层
不错哦  下载看一下啊
回复 支持 反对

使用道具 举报

0

主题

844

帖子

2772

积分

vip会员

Rank: 1

积分
2772
发表于 2016-7-21 07:12:42 | 显示全部楼层
看看价格支持下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部