这是第一人称控制器脚本,如果把摄像机放在胶囊体后面感觉就是第三人称了啊。

#pragma strict

var speed : float = 6.0;
var jumpspeed: float = 8.0;
var gravity : float = 20.0;
private var movedirection: Vector3 = Vector3.zero;
private var grounded: boolean = false;
private var qiqiu: boolean = false; function FixedUpdate () {
qiqiu = chufaqiqiu.power_q;
if (grounded){
movedirection = Vector3(Input.GetAxis("Horizontal"),0,Input.GetAxis("Vertical"));
movedirection = transform.TransformDirection(movedirection);
movedirection *= speed;
if (Input.GetButton("Jump")){
movedirection.y = jumpspeed;
}
if (Input.GetKey(KeyCode.Q))
transform.Rotate(0,-25*Time.deltaTime,0,Space.Self);
if (Input.GetKey(KeyCode.E))
transform.Rotate(0,25*Time.deltaTime,0,Space.Self);
if (Input.GetKey(KeyCode.W) && qiqiu){
movedirection.x *= 2;
movedirection.z *= 2;
} }
movedirection.y -= gravity*Time.deltaTime;
var controller: CharacterController = GetComponent(CharacterController);
var flags = controller.Move(movedirection*Time.deltaTime);
grounded = (flags & CollisionFlags.CollidedBelow) != 0; }
@script RequireComponent(CharacterController)

下面是碰撞器脚本

#pragma strict
@script RequireComponent(AudioSource)
import UnityEngine.UI; var tong_sound: AudioClip;
private var pzhuangtime: float = 0.0;
private var pzhuang: boolean = false;
private var pzhuangobject: GameObject; var pzhuang_time: float = 3.0;
var wenzi: Text; /* guang xian tou she peng zhuang var hit: RaycastHit;
if (Physics.Raycast(transform.position,transform.forward,hit,3)){
if(hit.collider.gameObject.tag == "hudie"){
var pzhuangobject: GameObject = hit.collider.gameObject;
pzhuangobject.SendMessage("mou ge han shu");
*/
function Update(){
//peng zhuang ji shi.
if(pzhuang){
pzhuangtime += Time.deltaTime;
print (pzhuangtime);
}
} function OnControllerColliderHit(hit: ControllerColliderHit){
/*if(hit.gameObject.tag == "tong"){
hit.gameObject.GetComponent.<AudioSource>().PlayOneShot(tong_sound);
}*/
//peng liang ci hu die cai hui xiao shi.
if(hit.gameObject.tag == "hudie"){
if(inventory.charge > 4){
pzhuang = true;
wenzi.text = "有本事,再碰我一下!";
}
else{
wenzi.text = "想抓我,呵呵&……*";
wenzi.enabled = true;
}
if(pzhuangtime > pzhuang_time){
hit.gameObject.GetComponent.<Animation>().Play("fly");
wenzi.text = "我可以飞的更高SB。";
pzhuangtime = 0.0;
pzhuang = false;
inventory.charge++; }
} }

下面是光线透射脚本。这脚本编译没错,但是功能没有实现。

#pragma strict
import UnityEngine.UI; function Updata(){
var hit: RaycastHit;
if (Physics.Raycast(transform.position,transform.forward,hit,3)){
if(hit.collider.gameObject.tag == "tong"){
var pzhuangobject: GameObject = hit.collider.gameObject;
gameObject.Find("Canvas/tong").GetComponent(Text).text = " 这是一个桶 ";
}
}
}

下面是触发器合集。

#pragma strict
import UnityEngine.UI; static var power_t: boolean = false;
private var pow_time: float = 0.0;
private var speed: float = 0.0;
private var wenzi_time: float = 0.0;
var wenzi: Text; function Start(){ } function Update(){
if (power_t == true){
pow_time += Time.deltaTime;
gameObject.Find("FPControl").GetComponent(fpcyidong).jumpspeed = 16.0; }
if (pow_time > 60.0){
power_t = false;
gameObject.Find("FPControl").GetComponent(fpcyidong).jumpspeed = 8.0;
pow_time = 0.0;
}
if (wenzi.enabled){
wenzi_time += Time.deltaTime;
if (wenzi_time > 10.0){
wenzi.enabled = false;
wenzi_time = 0.0;
}
}
}
function OnTriggerEnter(col:Collider){
if(col.gameObject.tag == "Player"){
//transform.FindChild("door").SendMessage("dooropen");
//col.gameObject.SendMessage("pickup");
wenzi.text = "这是一个魔力桶,获得60秒超级跳!";
power_t = true ;
wenzi.enabled = true;
//Destroy(gameObject.transform.parent.gameObject);
} }
#pragma strict
import UnityEngine.UI; static var power_q: boolean = false;
var wenzi: Text;
function Start () { } function OnTriggerEnter(col:Collider){
if(col.gameObject.tag == "Player"){
wenzi.text = "这是一个神奇的球,获得终身W冲刺";
power_q = true ;
wenzi.enabled = true;
}
}
#pragma strict
import UnityEngine.UI;
var wenzi: Text; function OnTriggerEnter(col:Collider){
if(col.gameObject.tag == "Player"){
if(inventory.charge > 5){
wenzi.text = "啊我再飞#¥!";
Destroy(gameObject);
Destroy(gameObject.Find("WaterBasicDaytime"));
wenzi.enabled = true; } }
#pragma strict

import UnityEngine.UI;
import UnityEngine.SceneManagement; var wenzi: Text; function OnTriggerEnter(col:Collider){
if(col.gameObject.tag == "Player"){
wenzi.text = "GAME OVER WISH TO NEXT TIME";
Destroy(col.gameObject);
wenzi.enabled = true;
SceneManager.LoadScene("02");
}
}
#pragma strict
import UnityEngine.UI; var wenzi: Text; function OnTriggerEnter(col:Collider){
if(col.gameObject.tag == "Player"){
wenzi.text = "GAME OVER";
Destroy(col.gameObject);
wenzi.enabled = true;
}
}
#pragma strict

private var chufatime: float = 0.0;
private var chufa: boolean = false;
private var chufaobject: GameObject; var chufa_time: float = 3.0;
var collecthudie: AudioClip;
var wenzi : Text; function Update(){
if(chufa){
chufatime += Time.deltaTime;
print(chufatime);
}
} function OnTriggerEnter(col:Collider){
if(col.gameObject.tag == "Player"){
if (inventory.charge > 4){
chufa = true;
}
else
wenzi.text = "bang wo na jige xiang zi lai";
if(chufatime > chufa_time){
gameObject.GetComponent.<Animation>().Play("fly");
AudioSource.PlayClipAtPoint(collecthudie,transform.position);
chufatime = 0.0;
chufa = false;
}
}
}

下面是旋转和变色脚本

#pragma strict

function Update () {
transform.Rotate(0,100*Time.deltaTime,0); }
function OnTriggerEnter(col:Collider){
if(col.gameObject.tag == "Player"){
//transform.FindChild("door").SendMessage("dooropen");
col.gameObject.SendMessage("pickup");
Destroy(gameObject);
}
}
#pragma strict
var t:float = 0; function Start () { } function Update () {
t += Time.deltaTime;
if (t <= 2){
GetComponent.<Renderer>().material.color = Color.blue;
}
else if (t > 2 && t <= 5){
GetComponent.<Renderer>().material.color = Color.red;
}
else{
GetComponent.<Renderer>().material.color = Color.green;
}
if (t > 7)
t = 0; }

下面是收集物品脚本,另一内建数组var cms:Renderer[];    for(var co:Renderer in cms){co.material.color = Color.red;},给数组内所有对象的  渲染器组件  染色。

#pragma strict
import UnityEngine.UI; static var charge: int = 0;
var collectSound: AudioClip; var powerui_raw: RawImage;
var textures: Texture2D[];
var wenzi: Text; function Start () {
charge = 0;
}
function pickup(){
AudioSource.PlayClipAtPoint(collectSound,transform.position);
charge++;
wenzi.text = "哎呀获得一个箱子";
powerui_raw.texture = textures[charge];
wenzi.enabled = true;
print (charge); }

最后是游戏开始脚本

#pragma strict
import UnityEngine.SceneManagement; function OnGUI(){
if(GUI.Button(Rect(180,100,60,30),"退出")){
Application.Quit();
}
if(GUI.Button(Rect(280,100,60,30),"开始")){
Application.LoadLevel("01");
} }
function Update(){
if (Input.GetKey(KeyCode.Q))
transform.Rotate(0,-25*Time.deltaTime,0,Space.Self);
if (Input.GetKey(KeyCode.E))
transform.Rotate(0,25*Time.deltaTime,0,Space.Self);
}

loadlevel是能用的但是过时了,用LoadScene

最新文章

  1. QC在win7下不能访问QC服务器介绍
  2. 赋值容器winform 根据NAME查找控件
  3. NGINX(四)配置解析
  4. 我的MYSQL学习心得(一)
  5. Android的sdk、api及工程目录说明
  6. Redis从入门到精通:初级篇
  7. CORS(跨域)请求总结和测试
  8. js实现获取对象key名
  9. java算法:统计数字-将数字转换成字符串,然后使用字符串String.valueOf()方法进行判断
  10. 关于指针*前后const代表的意思——记住一个口诀“左内右本”
  11. 【leetcode】21-MergeTwoSortedLists
  12. Spring Security 与 OAuth2 介绍
  13. BZOJ2115:[WC2011] Xor(线性基)
  14. vi 替换
  15. 不缓存AJAX
  16. Flutter自定义标题栏之处理状态栏高度
  17. java bigDecimal and double
  18. POST提交表单,本地Windows测试无乱码,而将项目部署到服务器端产生乱码原因之一
  19. 从零搭建 vue-cli 脚手架
  20. CSS- 文本超出指定宽度后隐藏并显示为省略号

热门文章

  1. Redis复制与可扩展集群搭建
  2. mybatis传递参数到mapping.xml
  3. CentOS 7 用户怎样安装 LNMP(Nginx+PHP+MySQL)
  4. Python 之 for循环中的lambda
  5. C#播放声音的四种方法 +AxWindowsMediaPlayer的详细用法
  6. Redis 配置文件详解
  7. source tree 推送错误解决
  8. gcc for windows(mingw)编译多个c文件
  9. 关于python中文件导入的若干问题
  10. JavaScript笔记基础篇(三)