`
iaiai
  • 浏览: 2196952 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[unity] 第一人称视角的实现

 
阅读更多
做一个第一人称视角的实现,并走动跳起

操作:
W[上] S[下] A[左] D[右]
+[速度加快] -[速度减慢]
鼠标控制方向


新建一项目,然后新建一地形,


然后建站天空,先导入资源


选择菜单上的Edit -> Render Settings

找到右面Skybox Material打开这个选项

选择一个合适的天空背景。

如果看不到效果,可点击下面选项来显示天空


Assets->Import Package->Terrain Assets导入陆地小草之类的资源
再导入Assets->Import Package->Character Controllers资源,此资源下有鼠标控制方向

设置陆地

选择好点添加

把需要的素材都添加进来

设置的第一个就是陆地的背景

这里看起来是比较暗的,需要设置一光源
从菜单中选择GameObject->Create other->Directional light创建一光源,设置好方向跟位置

然后设置一些山脉

然后给山脉上背景


效果如图:


选择Main Camera,点菜单Component->Camera-Control->Mouse Look
然后再添加建FPSWalker.js,如下:

var speed = 6.0;
var jumpSpeed = 8.0;
var gravity = 20.0;
var e:Vector3;

private var moveDirection = Vector3.zero;
private var grounded : boolean = false;

function FixedUpdate() {
	if(Input.GetKey(KeyCode.KeypadPlus)||Input.GetKey(KeyCode.Equals)){
         speed+=0.2;
    }
    if(Input.GetKey(KeyCode.KeypadMinus)||Input.GetKey(KeyCode.Minus)){
         if(speed>0){
             speed-=0.2;
         }else{speed=0;}
    }
    if (grounded) {
    	// We are grounded, so recalculate movedirection directly from axes
    	moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
        moveDirection = transform.TransformDirection(moveDirection);
        moveDirection *= speed;
                
        if (Input.GetButton("Jump")) {
        	moveDirection.y = jumpSpeed;
        }
	}

	// Apply gravity
	moveDirection.y -= gravity * Time.deltaTime;
        
	// Move the controller
	var controller : CharacterController = GetComponent(CharacterController);
	var flags = controller.Move(moveDirection * Time.deltaTime);
	grounded = (flags & CollisionFlags.CollidedBelow) != 0;
    
    var camera : Camera = GameObject.Find("Main Camera").GetComponent(Camera);
    if(Input.GetKey(KeyCode.RightBracket)){
		if(camera.fieldOfView<90){
			camera.fieldOfView+=0.5;
		}
	}
	if(Input.GetKey(KeyCode.LeftBracket)){
		if(camera.fieldOfView>60){
			camera.fieldOfView-=0.5;
		}else {camera.fieldOfView=60;}
	}
}

@script RequireComponent(CharacterController)


然后选择Main Camera,把刚才的FPSWalker.js拖拽到右边窗口,如下:


保存,运行
  • 大小: 31.9 KB
  • 大小: 49.3 KB
  • 大小: 18.3 KB
  • 大小: 27 KB
  • 大小: 3.8 KB
  • 大小: 31.1 KB
  • 大小: 42.3 KB
  • 大小: 8.4 KB
  • 大小: 31.3 KB
  • 大小: 34.4 KB
  • 大小: 79.5 KB
  • 大小: 8.6 KB
  • 大小: 16.8 KB
分享到:
评论

相关推荐

    unity实现第一人称视角的文档教程(附代码)

    动手实现了一个第一人称视角的编写方式,以前一直都用的unity自带的standardassets里面的第一人称视角预制体,现在也能自己写出来这种视角了,根据里面的文档来写每个人都可以做到,文档还介绍了一些简单的知识点,...

    Unity UGUI第三人称视角手游 左侧控制移动,右侧控制视角和方向 (可根据自己需求修改)

    Unity UGUI第三人称视角手游是游戏开发中一种常见的设计模式,尤其在移动设备上非常流行。这个项目的核心在于,它利用Unity的UGUI系统来构建用户界面,同时结合角色控制器,实现玩家通过左侧屏幕控制角色移动,右侧...

    Unity UGUI 通过摇杆 joystick 控制角色移动(第三人称视角)实现类似 王者荣耀,英雄联盟手游第三人称跟随相机

    Unity UGUI 通过摇杆 joystick 控制角色移动(第三人称视角)包含资源和例子,要实现王者荣耀,英雄联盟手游第三人称跟随相机只需加 一句代码 **Vector3.Lerp()这一句代码** 或者直接**做成人物子物体**更简单粗暴

    Unity第一人称

    Unity是一款强大的跨平台游戏引擎,被广泛用于开发各种类型的游戏,包括第一人称视角的游戏。在Unity中构建第一人称游戏涉及多个知识点,包括场景设置、摄像机控制、角色控制器、碰撞检测、光照、动画系统以及用户...

    UNITY第一人称射击游戏及素材包.zip

    在本教程中,我们专注于“UNITY第一人称射击游戏及素材包.zip”所涵盖的知识点,这将带领你一步步构建一个完整的第一人称射击(FPS)游戏。 首先,我们要了解FPS游戏的基本架构。这类游戏通常包括以下几个核心组件...

    Unity ThirdPersonMobile 第三人称 控制 移动端

    1. **第三人称控制器**:在Unity中,第三人称控制器允许玩家看到并控制一个在场景中的角色,而角色本身是可见的。这通常涉及到角色的动画系统、碰撞检测以及与环境的交互。在这个项目中,角色的移动和旋转都是通过...

    unity第一人称RPG游戏工程模版

    在这款"unity第一人称RPG游戏工程模版"中,开发者可以找到构建此类游戏所需的基础架构和资源,从而大大缩短开发时间。 模版的核心特性可能包括以下几点: 1. **第一人称视角系统**:模版应提供了一个完整的第一...

    unity3D 第三人称控制

    与第一人称视角不同,第三人称视角允许玩家看到角色的全身,提供更广阔的视野和角色动作的表现力。在Unity3D中,实现第三人称控制通常涉及以下几个步骤: 1. **创建角色控制器**: 首先,我们需要创建一个角色对象,...

    Unity 第三人称摄像机插件

    Unity的一款很好用的插件 第三人称摄像机 内附案例场景 可自行研究学习

    unity小型第一人称射击游戏

    新建一个椭圆来当主角(因为是第一人称视角,所以看不到玩家自己),将main camera拖给主角,并且调整摄像机的位置(大概位于玩家的头部),使摄像机跟随玩家移动。给主角添加move代码,主角可以通过键盘的WASD以及...

    unity3D第三人称游戏玩家和动画

    在Unity中,第三人称视角为玩家提供了一种跟随主角身后或侧面的观察方式,增强了游戏的沉浸感和视觉体验。这种视角设计允许玩家看到角色的全貌,同时观察周围环境,为游戏增加了策略性和深度。 在Unity3D中实现第三...

    unity第一人称迷宫游戏【迷踪失路】恐怖风

    总的来说,《迷踪失路》是Unity技术的巧妙运用,结合了第一人称视角、迷宫探索和恐怖元素,创造出一款引人入胜的游戏。玩家在体验中不仅能感受到Unity的强大功能,也能欣赏到开发者在游戏设计上的独到之处。

    unity第一人称多人游戏控制系统源码

    在“unity第一人称多人游戏控制系统源码”中,我们可以深入学习如何在Unity中构建一个支持多人在线的第一人称视角游戏。 1. **多人游戏架构**: 在多人游戏中,最重要的是网络同步。Unity提供了多种网络解决方案,...

    Unity第三人称视角解决方案.docx

    ### Unity第三人称视角解决方案 #### 一、引言 在Unity游戏开发中,第三人称视角是一种常见的游戏视角设计,尤其适用于动作冒险类游戏。本文将详细介绍如何在Unity中实现一个简洁且高效的第三人称视角解决方案,并...

    UnityFirstPersonController-master_unity3d_unity脚本master_视角控制_uni

    在Unity3D游戏开发中,第一人称视角控制器(First Person Controller)是构建沉浸式3D游戏的关键组件。"UnityFirstPersonController-master"是一个专为此目的设计的项目,它提供了玩家移动和摄像机跟随功能的实现。...

    unity期末作业-第三人称漫游精美场景模型,unity2021版本

    本资源是一个使用Unity2021版本制作的期末作业,主题为第三人称漫游精美场景。在这个项目中,学生或开发者可以学习到如何构建一个充满细节和交互性的游戏环境。 首先,"第三人称漫游"是指玩家可以操控角色在游戏...

    unity 键盘鼠标控制第一人称对象

    在Unity引擎中,开发一款游戏或交互式应用时,第一人称视角的控制是一个常见的需求。这个场景中,我们关注的是如何使用键盘和鼠标来控制一个第一人称对象,通常是玩家角色。Unity允许开发者通过编写C#脚本来实现这样...

    第一人称移动完美版.unitypackage

    第一人称视角,旋转,缩放,移动,跳跃,第一人称视角,旋转,缩放,移动,跳跃,第一人称视角,旋转,缩放,移动,跳跃,第一人称视角,旋转,缩放,移动,跳跃,第一人称视角,旋转,缩放,移动,跳跃,第一人称视角,旋转,缩放,移动,跳跃,

    PerspectiveShiftingCharacter:UNITY在第一人称控制器和第三人称控制器之间切换

    视角变化的联合国角色控制 此仓库包含一个示例,用于处理角色和相机在不同...在第一人称视角的时候角色跟随相机方向旋转在第三人称视角的时候角色跟着随输入旋转 去做 添加跳跃跳跃和自由落体自由落体(或dodge翻滚)

    Camera摄像机移动三种方式unitypackage

    本文将详细探讨摄像机移动的三种常见方式:第一人称视角、环绕视角以及自由视角(上帝视角),并结合提供的Unitypackage资源进行解析。 首先,**第一人称视角**通常用于模拟角色的眼睛,使玩家仿佛置身于游戏环境中...

Global site tag (gtag.js) - Google Analytics