滑板控制器

private var character :CharacterController;
private var speed
=0.0;
private var trans:Transform;
private var targetRot:Quaternion;

var rotationSpeed = 90 ;
 var pedalImpulse = 3.5;
 var
maxSpeed = 15;
 var decayRate = 0.1;
 var jumpSpeed : float =
8.0;
 var raycastMask :LayerMask;
 
function
Start()
{
   character =
GetComponent(CharacterController);
   trans= transform ;
}

function pedal()
{
    speed +=
pedalImpulse;
    speed = Mathf.Min(speed, maxSpeed);
}

function Update ()
{
   var horizontal =
Input.GetAxis("Horizontal");
   var Vertical =
Input.GetAxis("Vertical");
  
transform.Rotate(0,rotationSpeed*horizontal*Time.deltaTime,0);
  

   if(character.isGrounded)
  
  pedal();
   //For normalized vectors Dot returns 1 if
they point in exactly the same direction, -1
   //if they point in
completely opposite directions and zero if the vectors are
perpendicular.
   var moveDirection =
trans.forward*speed*Vertical;
   var upright =
Vector3.Dot(trans.forward,Vector3.up);//upright >0 是向上行走
<0向下行走
   Debug.Log(upright.ToString());
   //we
want fake gravity when the character becomes upright
   //become
the characterController dosen`t rotate
  
  
//当x>0,sign(x)=1;当x=0,sign(x)=0; 当x<0, sign(x)=-1
  
//Clamp01  Clamps value between 0 and 1 and returns value.
  
moveDirection += Vector3.Lerp(
Physics.gravity,Mathf.Sign(upright)
              
* -trans.forward *
Physics.gravity.magnitude,
              
Mathf.Clamp01(Mathf.Abs(upright)));
  
  
character.Move(moveDirection*Time.deltaTime);
  
  
//旋转角色根据地形法线
   var ray = new
Ray(trans.position+Vector3.up,-Vector3.up);
   var hit :
RaycastHit;
   if (character.isGrounded &&
Physics.Raycast(ray,hit,100,raycastMask))
  
{
       var targetRight =
Vector3.Cross(hit.normal,trans.forward);
      
var targetForward =
Vector3.Cross(targetRight,hit.normal);
      
targetRot = Quaternion.LookRotation(targetForward,hit.normal);
  
}
  
   trans.rotation =
Quaternion.Slerp(trans.rotation,targetRot,5*Time.deltaTime);
  

   if(character.isGrounded)
  
{
      
if(speed<0.3)
        
speed=0;
    else
   
{
       speed -=
decayRate*Time.deltaTime*speed;
    }
  
}
  
  
}

时间: 2024-08-10 17:03:51

滑板控制器的相关文章

LCD实验学习笔记(八):中断控制器

s3c2440有60个中断源(其中15个为子中断源). 程序状态寄存器(PSR)的F位设为1,禁用快速中断(FRQ). 程序状态寄存器(PSR)的I位设为1,禁用普通中断(IRQ). 相反,PSR寄存器F位为0开FRQ中断,I位为0开IRQ中断. s3c2440中断控制器中有五个控制寄存器:中断源等待寄存器(SRCPND),中断模式寄存器(INTMOD),屏蔽寄存器(INTMSK),优先级寄存器(PRIORITY),中断等待寄存器(INTPND). SRCPND寄存器各位对应不同的中断,其中外部

梳理版本控制器:SVN和Git比较

在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢?今天在此详细记录下: SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版本控制器!这是两者之间最核心的区别. Git不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应Git提供的一些概念和特征. 先来说说集中式版本控制系统: 版本库是集中存放在中央服务器的,而干

Json&amp;Razor&amp;控制器

JsonJson 属于JavaScript所以要书写在<script></script>中1.语法规则: 1.1:键值对 1.2:逗号分隔 1.3:花括号保存对象 1.4:方括号保存数组JSON的值可以为NULL2.JSON对象是在花括号内书写(键值对"{ "name":"小王" , "url":"www.xiaowang.com" }")3.使用数组的话则是用方括号包裹每个JSON

基于MVC4+EasyUI的Web开发框架形成之旅--MVC控制器的设计

自从上篇<基于MVC4+EasyUI的Web开发框架形成之旅--总体介绍>总体性的概括,得到很多同行的关注和支持,不过上一篇主要是介绍一个总体的界面效果和思路,本系列的文章将逐步介绍其中的细节,本文主要介绍整个Web开发框架中的MVC控制器的设计.在设计之初,我就希望尽可能的减少代码,提高编程模型的统一性.因此希望能够以基类继承的方式,和我Winform开发框架一样,尽可能通过基类,而不是子类的重复代码来实现各种通用的操作. 1.登录控制的控制器基类设计 我们知道,一般我们创建一个MVC的控制

基于MVC4+EasyUI的Web开发框架形成之旅--基类控制器CRUD的操作

在上一篇随笔中,我对Web开发框架的总体界面进行了介绍,其中并提到了我的<Web开发框架>的控制器的设计关系,Web开发框架沿用了我的<Winform开发框架>的很多架构设计思路和特点,对Controller进行了封装.使得控制器能够获得很好的继承关系,并能以更少的代码,更高效的开发效率,实现Web项目的开发工作,整个控制器的设计思路如下所示. 从上图的设计里面可以看到,我把主要能通过抽象封装的CRUD方法都放到了BusinessController<B, T>类里面,

CI3.0控制器下面建文件夹 访问一直404 的解决方法

在单入口文件(框架目录下面的index.php)最下面的require_once BASEPATH.'core/CodeIgniter.php';这行上面设置一个路径,是相对于conrollers文件夹的,你这里这样写:$routing['directory'] = './home/';(这里的home是控制器里的子目录),然后在路由配置文件那里填$route['default_controller'] = 'home';

3 控制器设计

原文链接 控制器设计 基于roll, pitch, yaw的传递函数表达的系统的线性数学模型 使用Matlab仿真工具设计了一个闭环控制器. 首先,在Matlab脚本里面定义系统模型的常量. %% Constants d = 0.45; % diameter quadrocopter l = sqrt(d^2/8); % distance between one rotor and center of mass m = 1.0024; % mass of quadrocopter g = 9.8

MVC学习笔记——控制器

一.创建新的控制器 操作:选中Controllers文件夹,右键Add/Controller,然后给予命名eg:StoreController 判断:一个类是否为控制器类:该类是否继承自using System.Web.Mvc.Controller 明确:模型和视图虽然非常有用,但是控制器才是真正的核心,每个请求都必须通过控制器处理,它是MVC应用程序的“指挥员”! 代码演示: using System; using System.Collections.Generic; using Syste

AngularJS 外部文件中的控制器

在大型的应用程序中,通常是把控制器存储在外部的文件中. <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="X-UA-Compatible"content="IE=edge" /> <me