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

#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

unity 3d孤岛求生案例代码解析的更多相关文章

  1. 使用 Unity 3D 开发游戏的架构设计难点

    Unity 3D 引擎对于开发者来说,入手非常快,因为它采用的是 C# 作为开发语言,这也大大降低了开发者的门槛.但凡只要懂一门编程语言的人都能使用 Unity 3D 引擎开发,另外 Unity 3D ...

  2. (转)stage 3d or unity 3d

    这个是这样子的.stage3d如果不使用flascc的话,性能会卡在as上面.你没卡是因为你用的效果还不够高级.往深了走的高端应用就是卡as性能上.这不是你代码能优化了的.我们后来都改用flascc写 ...

  3. unity 3d开发的大型网络游戏

    unity 3d开发的大型网络游戏 一.总结 1.unity的官网上面应该有游戏列表 2.unity3D是很好的3d游戏引擎,也支持2d,也能做很多画面精良的3A级游戏 3.范围:电脑游戏,手机游戏, ...

  4. 出售一套Unity + Lua热更新框架代码

    出售一套Unity + Lua的客户端框架代码,功能有资源管理.网络通信.配置文件解析.热更新.文件读写.Lua加密揭秘.UI框架.打包工具.编辑器工具等,已经在多个实际项目(已上线)中使用.代码优雅 ...

  5. 另类Unity热更新大法:代码注入式补丁热更新

    对老项目进行热更新 项目用纯C#开发的? 眼看Unity引擎热火朝天,无数程序猿加入到了Unity开发的大本营. 一些老项目,在当时ulua/slua还不如今天那样的成熟,因此他们选择了全c#开发:也 ...

  6. Unity 3D 游戏上线之后的流水总结

    原地址:http://tieba.baidu.com/p/2817057297?pn=1 首先.unity 灯光烘焙 :Unity 3D FBX模型导入.选项Model 不导入资源球.Rig 不导入骨 ...

  7. C#程序员整理的Unity 3D笔记(十五):Unity 3D UI控件至尊–NGUI

    目前,UGUI问世不过半年(其随着Unity 4.6发布问世),而市面上商用的产品,UI控件的至尊为NGUI:影响力和广度(可搜索公司招聘Unity 3D,常常能看到对NGUI关键词). NGUI虽然 ...

  8. C#程序员整理的Unity 3D笔记(十三):Unity 3D基于组件的思想

    如果你接触过<设计模式>.软件架构的编程思想,就会知道优秀的设计准则:“组合优于继承的”. 这句话很简短,但开始学习OOP的时候,真切的是—-不太好理解(以我个人当初学习为例). OOP的 ...

  9. 【图说】Eclipse与Unity 3D协同工作

    原地址:http://blog.csdn.net/h570768995/article/details/9355313 Eclipse开发过程中总会碰到很多的难题,如何利用好工具帮助我们更快捷的开发也 ...

随机推荐

  1. css不常用重要属性

    超出省略号:display:block;white-space:norwrap;overflow:hidden;text-overflow:ellipsis; white-space:norwrap/ ...

  2. Linode VPS上部署vpn成功

    环境: CentOS 6.5 (Latest 64 bit (3.15.4-x86_64-linode45)) 采用网上一键安装的脚本:如果下载不了,下面有代码.wget http://www.hi- ...

  3. html 学习资料列表

    HTML 教程 HTML 简介 html div 标签介绍 html span 标签介绍 html a 超链接标签 HTML Br换行标签介绍 HTML P段落标签介绍 HTML br与p标签区别 H ...

  4. 下载Tomcat时Tomcat网站上的core和deployer的区别

    下载Tomcat时Tomcat网站上的core和deployer的区别 做JavaEE开发的朋友,无论是学习者还是已经工作的朋友,总是会用到Tomcat这个Servlet容器,那么大家从Tomcat官 ...

  5. ASP.net 中手工调用WS(POST方式)

    ASP.net 中手工调用WS(POST方式)核心代码:string strUrl="http://localhost:21695/service1.asmx/getmythmod" ...

  6. 剑指Offer:面试题32——从1到n整数中1出现的次数(java实现)

    问题描述: 输入一个整数n,求1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1的数字有1,10,11,12,1一共出现了5次. 思路:(不考虑时间效率的解法,肯定不 ...

  7. Geodatabase数据模型

    1  Geodatabase概念 Geodatabase是ArcInfo8引入的一种全新的面向对象的空间数据模型,是建立在DBMS之上的统一的.智能的空间数据模型.“统一”是指,Geodatabase ...

  8. ubuntu-利用pdnsd-TCP方式获取IP-拒绝DNS污染

    那,自从国内技术出现了DNS污染问题呢,时常导致很多国外网站访问不正常,所以通过参考一些博客所属避免DNS污染的方法,决定搭建一个Ubuntu JeOS下的DNS缓存服务器,该服务器利用TCP方式获取 ...

  9. AX7: How to deploy a Package

    A. Using LCS services. B. Manual using command prompt. Here I’ll show using command prompt, as I fou ...

  10. JS判断input按了回车键

    参考代码如下: <input type="textbox" id="textbox1" onkeypress="CheckInfo" ...