Unity3D脚本:C#计时类脚本
 unity3D更多资源教程免费下载,群153442627
using UnityEngine;
using System.Collections;
/// <summary>
/// C# timer 改编自Jeff 'PsychicParrot' Murray 的js的timer
/// </summary>
public class Timer : MonoBehaviour {
private float timeElapsed = 0.0f;
private float currentTime = 0.0f;
private float lastTime = 0.0f;
private float cdTime = 0.0f;
private float timeScaleFactor = 1.0f;
private bool isTimerRunning;
private bool doneCallback;
private float parseTime;
private GameObject callback;
private float aHour;
private float aMinute;
private float aSecond;
private float aMillis;
private string seconds;
private string minutes;
private string hour;
private string mills;
private string timeString;
void Update ()
{
timeElapsed=Time.time-lastTime;
if(isTimerRunning){
currentTime+=timeElapsed*timeScaleFactor;
}
lastTime=Time.time;
}
public void StartTimer()
{
isTimerRunning=true;
doneCallback=false;
lastTime=Time.time;
}
public void StopTimer()
{
isTimerRunning=false;
}
public void ResetTimer()
{
doneCallback=false;
timeElapsed=0.0f;
lastTime=0.0f;
currentTime=0.0f;
lastTime=Time.time;
}
public void SetCountdownTime(float aTime)
{
cdTime=aTime;
}
public void SetCallback(GameObject aRef)
{
callback=aRef;
doneCallback=false;
}
public float GetTime()
{
return currentTime;
}
public string GetFormattedTime(int returnType)
{
if(cdTime>0){
// if a countdown time has been set, we parse the reverse time value
parseTime=cdTime-currentTime;
if(parseTime<0){
if(!doneCallback){
// SOUND THE ALARM!!!!! WE HIT 0!
callback.SendMessage("alarmDone");
// set our doneCallback flag so as not to repeat call alarmDone()
doneCallback=true;
}
parseTime=0;
}
} else {
// if no countdown time has been set, we just parse the regular time
parseTime=currentTime;
}
// grab hours
aHour = parseTime/3600;
aHour=aHour%24;
// grab minutes
aMinute=parseTime/60;
aMinute=aMinute%60;
// grab seconds
aSecond=parseTime%60;
// grab milliseconds
aMillis=(parseTime*100)%100;
// format string into mm:ss:mm
seconds=Mathf.Round(aSecond).ToString();
if(seconds.Length<2)
seconds="0"+seconds;
minutes=Mathf.Round(aMinute).ToString();
if(minutes.Length<2)
minutes="0"+minutes;
hour=Mathf.Round(aHour).ToString();
if(hour.Length<2)
hour="0"+hour;
mills=Mathf.Round(aMillis).ToString();
if(mills.Length<2)
mills="0"+mills;
switch(returnType){
case 1:
timeString=minutes+":"+seconds+":"+mills;
break;
case 2:
timeString=minutes+":"+seconds;
break;
default:
timeString=hour+":"+minutes+":"+seconds+":"+mills;
break;
}
return timeString;
}
public float GetHours()
{
if(cdTime>0){
// if a countdown time has been set, we parse the reverse time value
parseTime=cdTime-currentTime;
if(parseTime<0){
parseTime=0;
}
} else {
// if no countdown time has been set, we just parse the regular time
parseTime=currentTime;
}
// grab hours
aHour = parseTime/3600;
return aHour;
}
public float GetMinutes()
{
if(cdTime>0){
// if a countdown time has been set, we parse the reverse time value
parseTime=cdTime-currentTime;
if(parseTime<0){
parseTime=0;
}
} else {
// if no countdown time has been set, we just parse the regular time
parseTime=currentTime;
}
// grab minutes
aMinute=parseTime/60;
aMinute=aMinute%60;
return aMinute;
}
public float GetSeconds()
{
if(cdTime>0){
// if a countdown time has been set, we parse the reverse time value
parseTime=cdTime-currentTime;
if(parseTime<0){
parseTime=0;
}
} else {
// if no countdown time has been set, we just parse the regular time
parseTime=currentTime;
}
// grab seconds
aSecond=parseTime%60;
return aSecond;
}
public int getClockTimeHour()
{
int aTime=System.DateTime.Now.Hour;
return aTime;
}
public int getClockTimeMinute()
{
int aTime=System.DateTime.Now.Minute;
return aTime;
}
public int getClockTimeSeconds()
{
int aTime=System.DateTime.Now.Second;
return aTime;
}
public string GetClockFormattedTime(int returnType)
{
int aHour =System.DateTime.Now.Hour;
int aMinute =System.DateTime.Now.Minute;
int aSecond =System.DateTime.Now.Second;
int aMillis =System.DateTime.Now.Millisecond;
// format string into mm:ss:mm
seconds=Mathf.Round(aSecond).ToString();
if(seconds.Length<2)
seconds="0"+seconds;
minutes=Mathf.Round(aMinute).ToString();
if(minutes.Length<2)
minutes="0"+minutes;
hour=Mathf.Round(aHour).ToString();
if(hour.Length<2)
hour="0"+hour;
mills=Mathf.Round(aMillis).ToString();
if(mills.Length<2)
mills="0"+mills;
if(mills.Length>2)
mills=mills.Substring(0,2);
switch(returnType){
case 1:
timeString=minutes+":"+seconds+":"+mills;
break;
case 2:
timeString=minutes+":"+seconds;
break;
default:
timeString=hour+":"+minutes+":"+seconds+":"+mills;
break;
}
return timeString;
}
}
Unity3D脚本:边缘高光脚本
Posted on 2013年02月16日 by U3d / Unity3D脚本/插件/被围观 240 次
Shader着色器,边缘高光,只需一个shader文件,直接可用。
Shader "Example/Rim" {
Properties {
_MainTex ("Texture", 2D) = "white" {}
_BumpMap ("Bumpmap", 2D) = "bump" {}
_RimColor ("Rim Color", Color) = (0.26,0.19,0.16,0.0)
_RimPower ("Rim Power", Range(0.5,8.0)) = 3.0
}
SubShader {
Tags { "RenderType" = "Opaque" }
CGPROGRAM
#pragma surface surf Lambert
struct Input {
float2 uv_MainTex;
float2 uv_BumpMap;
float3 viewDir;
};
sampler2D _MainTex;
sampler2D _BumpMap;
float4 _RimColor;
float _RimPower;
void surf (Input IN, inout SurfaceOutput o) {
o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
o.Normal = UnpackNormal (tex2D (_BumpMap, IN.uv_BumpMap));
half rim = 1.0 - saturate(dot (normalize(IN.viewDir), o.Normal));
o.Emission = _RimColor.rgb * pow (rim, _RimPower);
}
ENDCG
}
Fallback "Diffuse"
}

Unity3D脚本:C#计时类脚本的更多相关文章

  1. unity3d 特殊文件夹和脚本编译顺序

    unity3d 特殊文件夹和脚本编译顺序 转自http://blog.csdn.net/u010019717/article/details/40474631 大多数情况下,您可以选择任何你喜欢的文件 ...

  2. Unity3D第三人称摄像机控制脚本

    好久没有敲Blog该.感谢您的留言.注意.私人信件和其他支持,但我似乎没有办法继续自己曾经写了一篇博客系列,因为我在网上找到有关unity3D太少的内容,U3D相关的文章!.. 第三人称视角 第三人称 ...

  3. 远程shell脚本执行工具类

    /** * 远程shell脚本执行工具类 */public class RemoteShellExecutorUtils { private static final Logger logger = ...

  4. CodeSmith生成SQL Server视图的实体类脚本/对应的生成模板

    C#生成sql视图的实体类 using System;using System.Text;using CodeSmith.Engine;using SchemaExplorer;using Syste ...

  5. (转)Unity3D研究院之游戏架构脚本该如何来写(三十九)

     这篇文章MOMO主要想大家说明一下我在Unity3D游戏开发中是如何写游戏脚本的,对于Unity3D这套游戏引擎来说入门极快,可是要想做好却非常的难.这篇文章的目的是让哪些已经上手Unity3D游戏 ...

  6. java调用python脚本并向python脚本传递参数

    1.安装Eclipse 先安装jdk,再安装Eclipse,成功后开始建立py_java项目,在这个项目的存储目录SRC下建立test包,在test包中New-Class,新建MyDemo类,建好完成 ...

  7. 使用Badboy录制Web脚本 JMeter运行jmx脚本

    1.下载JDK 1.1 官网地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 在官网下载最新版本的JDK 1 ...

  8. Tomcat重启脚本restart.sh停止脚本stop.sh

    Tomcat重启脚本restart.sh停止脚本stop.sh Tomcat本身提供了 startup.sh(启动)shutdown.sh(关闭)脚本,我们在部署中经常会出现死进程形象,无法杀掉进程需 ...

  9. shell脚本分为三类:登录脚本、交互式脚本、非交互式脚本

    shell脚本分为三类:登录脚本.交互式脚本.非交互式脚本 一. 登录脚本类似于windows下的计算机设置中的登录脚本和账户设置下的登录脚本的合集(我是这么理解的哈). 其配置文件的关键词为pref ...

随机推荐

  1. PHP5.3下加速器ZendGuardLoader安装 (LNMP/lnmpa)

    PHP5.3下加速器ZendGuardLoader安装 (LNMP/lnmpa) 由于Zend新产品ZendGuardLoader的面世,Zend Optimizer已经不支持php5.3了,官方给出 ...

  2. UITableViewCell 添加 checkbox 多选

    TableViewCell多选: CheckBox; - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndex ...

  3. 【Linux】压缩与解压

    一: 下面这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个: tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件 下面的参数是根据需要在 ...

  4. iOS UITableView获取特定位置的cell

    代码地址如下:http://www.demodashi.com/demo/13307.html 一.tableView双级联动 以上两种效果比较类似,实现的关键在于都是需要获得在滑动过程中滑动到tab ...

  5. Tomcat_启动参数设置

    1.修改启动时内存参数.并指定JVM时区 (在windows server 2008 下时间少了8个小时): 在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增 ...

  6. kali2.0下配置Metasploit+postgresql链接

    工具/原料   kali2.0 方法/步骤     1.postgresql是本身没有启动的.所以需要启动. service postgresql start   2.通过命令进入配置 sudo -u ...

  7. SQLyog之MySQL客户端的下载、安装和使用(普通版)

    本博文的主要内容有 .SQLyog的下载 .SQLyog的安装 .SQLyog的使用 前期,安装这个,不多说 MySQL Server类型之MySQL客户端工具的下载.安装和使用 1.SQLyog的下 ...

  8. javascript和html中unicode编码和字符转义的详解

    1.html中的转义:在html中如果遇到转义字符(如“ ”),不管你的页面字符编码是utf-8亦或者是GB2312,都会直接打印成相应的字符:而当遇到(如:“\u8981”[此处的8981是16进制 ...

  9. NGUI ScrollView中MoveRelative,Scroll的区别

    Scroll会计算边界,和直接拖拽的效果类似 MoveRelative不计算边界,超出边界了也不会管,也不会应用缓动效果

  10. [k8s]简单启动一个k8s集群

    简单启动一个k8s集群 kube-master mkdir -p /root/logs/api-audit /root/logs/controller /root/logs/scheduler kub ...