关于用过控制人物移动的方法

在这里将收集更新有关,控制移动的方法。

1.通过WSAD控制人物的前后移动的方法(一)

 1 public class PlayerMovemeng:monoBehaviour
 2 {
 3 //人物的移动速度
 4 public float speed=6f;
 5 //坐标的移动变化量
 6 Vector3 movement;
 7 Rigidbody playerRigidbody;
 8 //与Ray发生碰撞的平面的Layer层数’
 9 int FloorMask;
10 float camRayLength=100f;
11 void Awake()
12 {
13 floorMask=LayerMask.GetMask("Floor");
14 PlayerRigidbody=GetComponent<Rigidbody>();
15 }
16 void FixedUpdate()
17 {
18 //ws前后的控制
19 float h=Input.GetAxisRaw("Horizontal"):
20 //ad左右的控制
21 float v=Input.GetAxisRaw("Vertical")
22 Move(h,v);
23 Turning();
24 }
25 //实现移动
26 void Move(float h,float v)
27 {
28 movement.Set(h,0,v);
29 movement=movement.normalized*speed*Time.deltaTime;
30 //使用刚体的MovePosition来实现人物移动
31 playerRigidbody.MovePosition(trandorm.position+movement);
32 }
33 //转向鼠标
34 void Turning()
35 {
36 Ray camRay=Cameta.main.ScreenPointToRay(Input.mousePosition);
37 RaycastHit floorHit;
38 if(Physics.Raycast(camRay,Out floorHit,camRayLength,floorMask));
39 {
40 //获取人物与鼠标点击处的向量
41 Vevtor3 playerToMouse=floorHit.point-transform.position;//获取人物与鼠标之间的用于旋转的四元数
42 Quaternion newRotation=Quaternion.LookRotation(playerToMouse);//实现人物的转向过度
43 playerRigidbody.MoveRotation(newRotation);
44 }
45 }
46 }

2.实现相机跟随人物的脚本(无旋转方向)

 1 public Transform target;
 2 //镜头滑动速度
 3 public float smoothing=5f;
 4 //相机与人物的距离
 5 Vector3 offset;
 6 void Start()
 7 {
 8 offset=transform.positiion-target.position;
 9 }
10 void FixedUpdate()
11 {
12    Vevtor3 targetCamPos=target.position+offset;
13 transform.position=Vector3.Lerp(transform.position,targetCamPos,smoothing*Time.datle);
14 }
时间: 2024-10-12 02:53:33

关于用过控制人物移动的方法的相关文章

利用OnAnimatorove函数控制人物的移动

unity中控制人物移动有很多方法,经过这么长时间的学习后,我总结了一些: 利用transform的translate方法控制人物移动:(结合动画的控制就不说了)  float mx = Input.GetAxis("Horizontal") * moveSpeed * Time.deltaTime;  float mz = Input.GetAxis("Vertical") * moveSpeed * Time.deltaTime;    transform.tr

JS控制伪元素的方法汇总

转载自:http://www.jb51.net/article/81984.htm 一. 缘由: 本文源于在OSC社区中,有人提问如何用jq获取伪元素.我第一想法是强大的CSS Query应该可以获取伪元素吧. 然而事实上,CSS Query并不能.即我们不能通过$(":before").$(dom).find(":before")或document.querySelector(":before")来获取:before伪元素. 为此,我不得不重新

[Unity3D]Unity3D游戏开发之使用EasyTouch虚拟摇杆控制人物移动

大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是blog.csdn.net/qinyuanpei.今天呢,我们来一起学习在Unity3D中使用EasyTouch虚拟摇杆来控制人物移动.虽然Unity3D内置了一个Joystick组件(事实上就是一个GUITexture和一个Js脚本文件啦),但是博主在实际使用的时候发现这个内置的Joystick存在无法适应屏幕大小的问题,所以博主在这里向大家推荐使用EasyTouch这个插件,通过这个插件.我们能够高速地在应用中集成虚拟摇杆功能,并且能够

程序流程的控制、数组和方法

本周主要3个点是程序流程控制 .数组和方法 程序流程控制主要是选择语句和循环语句:其中选择语句是分为 if语句 单分支.双分支.多分支:if语句中又可以嵌套if语句这就是if语句的嵌套格式为: if(条件1) {if(条件2){语句1} else{语句2} } else{ if(条件3){语句3} else{语句4} },  还有是switch语句格式switch(算数表达式){case 常量表达是式1: 语句块1:break; case常量表达式2:语句块2:break; default :语

JavaScript强化教程——DOM编程(两种控制div移动的方法)

本文为H5EDU机构官方HTML5培训教程,主要介绍:JavaScript强化教程--DOM编程(两种控制div移动的方法) 第一种 按钮控制首先 创建两个html按钮和一个div并给div一个样式 input type="button" value="左" id="1"> <input type="button" value="右" id="2"> <div i

C#实现通过winmm.dll控制声音播放的方法

本文以实例介绍了C#如何通过winmm.dll来播放声音,主要实现步骤如下: 1.首先导入如下两个函数: /// <summary> /// 向媒体控制接口发送控制命令 /// </summary> /// <param name="lpszCommand">命令,参见 /// http://msdn.microsoft.com/en-us/library/windows/desktop/dd743572(v=vs.85).aspx </par

工业串口触摸屏开发制作mp3播放器,单片机或PLC通过串口控制播放MP3音频方法

在工业控制系统中将音乐或语音MP3的美和工控结合在一起,给人以赏心悦目的感受.随着工业控制的发展,对工业控制的控制要求也越来越高,使得越来越多的控制部分不是指简单的现场控制,还需要增加音乐播放或语音提示,使得控制系统更加人性化. 这里介绍广州易显的工业串口触摸屏或者ARM工控机连接单片机或者PLC,使用工业串口触摸屏开发制作mp3的方法.跟电脑的播放器一样,具有播放,暂停,停止,控制播放进度,上一首,下一首等功能.可以在人机界面上控制播放MP3音乐或者语音提示.也可以使用单片机或PLC控制播放的

Unity3D Kinect 控制人物模型

两个参考地址: 结合Kinect游戏开发 yuyuyouer工作室 我使用的是unity3D 4.X,kinect SDK为1.7,Kinect1.7UnityPackage.unitypackage(插件包) KinectModelControllerV2 - 你需要将这个脚本拖放到你想要应用kinect控制的模型上.为了让模型能够跟上人的节奏,你需要将模型上控制模型动作的关键骨骼拖放到这个脚本暴漏的合 适的变量中 ,也就是将模型中的骨骼与kincet识别到的人的骨骼绑定起来.另外这个脚本暴漏

ESP8266固件修改可以控制多个IO方法

之前在论坛上找到了一个通过ESP8266可以控制GPIO0的固件和app,但是自己做的家庭影音灯光系统是需要控制多个IO从而控制STM32.通过观看大明的视频,了解了GPIO的控制方法. 在固件的app\user\at_ipCmd.c中接收数据.通过识别发送过来是字符串G P I O 0 = 0然后进行对应的GPIO设置. 多个的解决方法就是上图所示的GPIO4的操作.这样就可以通过wifi来控制多个.