文章分类 -  Unity3d 应用脚本

摘要:void Update () { if(Input.GetMouseButtonDown(0)) { RayControl(); } if(flagMove) { if(Vector3.Distance(transform.position,mousePos)>1) { transform.Translate(transform.worldToLocalMatrix* transform.forward * Time.d... 阅读全文
posted @ 2012-08-23 10:03 渡蓝 阅读(525) 评论(0) 推荐(0)
摘要:private var first = Vector2.zero; private var second = Vector2.zero; function Update (){} function OnGUI (){ if(Event.current.type == EventType.MouseDown) { //记录鼠标按下的位置 first = Event.current.mousePosition ; } if(Event.current.type == EventType.MouseDrag) { //记录鼠标拖动的位置 ... 阅读全文
posted @ 2012-04-17 16:38 渡蓝 阅读(326) 评论(0) 推荐(0)
摘要:代码很简单 :var mouse_pic:Texture;function Start(){Screen.showCursor=false;}function OnGUI(){var mouse_pos=Input.mousePosition;GUI.DrawTexture(Rect(mouse_pos.x,Screen.height-mouse_pos.y,16,20),mouse_pic);}原理其实很简单,首先是隐藏原有的鼠标,然后将一张 小图,放在鼠标的位置上。 阅读全文
posted @ 2012-04-17 16:37 渡蓝 阅读(349) 评论(0) 推荐(0)
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;/** 用到了unity3d非常好的协同机制实现这一点,OnMouseDown事件表示鼠标已作了射线判断得到了对象。* 拖拽时保持z轴不变,因为屏幕是xy二维的,空间是三维的。* */IEnumerator OnMouseDown (){ var camera = Camera.mainCamera; if (camera) { //转换对象到当前屏幕位置 Vector3 screenPosition = camera.Wor... 阅读全文
posted @ 2012-04-17 16:36 渡蓝 阅读(390) 评论(0) 推荐(0)
摘要:var hit : RaycastHit;private var ButtonClicked = false;private var lastTime :float= 0;private var nowTime :float = 0;function Update (){if(Input.GetMouseButtonDown(0)){ nowTime = Time.time; if (lastTime +0.3 > nowTime) { ButtonClicked = true; } else { ButtonClicked = false; } lastTime = nowTime; 阅读全文
posted @ 2012-04-17 16:27 渡蓝 阅读(244) 评论(0) 推荐(0)
摘要:GUI.SetNextControlName("InputFieldLC"); inputLC = GUI.TextField(new Rect(Screen.width / 2 + 240,Screen.height - 30,100,20),inputLC); if(GUI.Button(new Rect(Screen.width / 2 + 340, Screen.height - 30,40,20),"定位")) { if(wwwIng == false) { wwwIng = true; Application.ExternalCall(&qu 阅读全文
posted @ 2012-04-17 16:26 渡蓝 阅读(196) 评论(0) 推荐(0)
摘要:private string timerValue = "0:00:00"; // Use this for initialization void Start() { InvokeRepeating("TimerUpdate", 1.0f, 0.13f); timerSkin = (GUISkin)Resources.Load("TimerGUISkin"); } private void TimerUpdate() { float minutes = Mathf.FloorToInt(Time.time / 60); float 阅读全文
posted @ 2012-04-17 16:23 渡蓝 阅读(225) 评论(0) 推荐(0)
摘要:Transform GetTransform(Transform check,string name) { foreach (Transform t in check.GetComponentsInChildren<Transform>()) { if(t.name==name){return t;} GetTransform(t,name); } return null; } 阅读全文
posted @ 2012-04-17 16:21 渡蓝 阅读(217) 评论(0) 推荐(0)
摘要:private void MakeStroke(Rect position,string txtString,Color txtColor,Color outlineColor,int outlineWidth ){ position.y-= outlineWidth; GUI.color=outlineColor; GUI.Label(position, txtString); position.y+=outlineWidth*2; GUI.Label(position, txtString); position.y-=outlineWidth; position.x-=outlineWid 阅读全文
posted @ 2012-04-17 16:20 渡蓝 阅读(1368) 评论(0) 推荐(0)
摘要:public var fadeOutTexture : Texture2D;public var fadeSpeed = 0.3;var drawDepth = -1000;private var alpha = 1.0;private var fadeDir = -1;function OnGUI(){ alpha += fadeDir * fadeSpeed * Time.deltaTime; alpha = Mathf.Clamp01(alpha); GUI.color.a = alpha; GUI.depth = drawDepth; GUI.DrawTexture(Rect(0,.. 阅读全文
posted @ 2012-04-10 14:34 渡蓝 阅读(178) 评论(0) 推荐(0)
摘要:function Start () { animation.wrapMode = WrapMode.Loop; animation["jump"].wrapMode = WrapMode.Once; animation["jump"].layer = 1; animation.Stop();}function Update () { if (Mathf.Abs(Input.GetAxis("Vertical")) > 0.1) animation.CrossFade("run"); else animatio 阅读全文
posted @ 2012-04-10 14:25 渡蓝 阅读(153) 评论(0) 推荐(0)
摘要:var shoulder : Transform; //比如上半身骨骼//var shoulder01 : Transform; //比如下半身骨骼function Start(){ animation.Play("walk"); animation["jump"].layer = 10; animation["jump"].blendMode = AnimationBlendMode.Blend; animation["jump"].wrapMode = WrapMode.Once; animation[&quo 阅读全文
posted @ 2012-04-10 14:24 渡蓝 阅读(214) 评论(0) 推荐(0)
摘要:背包GUIvar skintemp:GUIStyle;var skintemp01:GUIStyle;var skintemp02:GUIStyle;var skintemp03:GUIStyle;var skintemp04:GUIStyle;function OnGUI() { GUI.Button(Rect(10,70,50,50),"",skintemp); GUI.Button(Rect(70,70,50,50),"",skintemp01); GUI.Button(Rect(130,70,50,50),"",skintem 阅读全文
posted @ 2012-04-10 14:22 渡蓝 阅读(347) 评论(0) 推荐(0)
摘要:using UnityEngine;using System.Collections;public class clicFullscreen : MonoBehaviour{ void OnGUI() { if (GUI.Button(new Rect((Screen.width - 64), 4, 60, 20), "fullscreen")) { Screen.fullScreen = !Screen.fullScreen; } }} 阅读全文
posted @ 2012-03-21 18:01 渡蓝 阅读(162) 评论(0) 推荐(0)
摘要:// Does this script currently respond to Input?var canControl = true;// The character will spawn at spawnPoint's position when needed.This could be changed via a script at runtime to implement, e.g. waypoints/savepoints.var spawnPoint : Transform;class PlatformerControllerMovement {// The speed 阅读全文
posted @ 2012-03-21 16:06 渡蓝 阅读(590) 评论(0) 推荐(0)
摘要:恕我啰嗦几句先呀~~~ 前些天来的新项目需要成组的的出怪(怪的个数随机,怪的角度随机,怪的种类随机,首次出怪点也随机,而这些随机又随着游戏时间的进行又会改变) 最开始,也是最容易考虑到得是时间控制。 但是这种方法在这项目中不适用,因为项目随机性太强。用时间控制需要综合太多问题:个数,速度,角度,怪的种类,甚至角度正负等等等等;不用我多说大家恐怕有同感。 试了这种方法就给他放弃了,代码和其环境耦合度太高!于是就想到了以下的方法,也是很简单的方法,核心思路就是线性函数。 【直线的斜率】(刷怪需要的角度)乘以 【怪的横坐标】 等于 【纵坐标】 需要的变量:怪的个数,怪的角度 具体思路: 循环(次数为 阅读全文
posted @ 2012-03-21 16:00 渡蓝 阅读(291) 评论(0) 推荐(0)
摘要:思想很简单,先获取2D坐标轴上X,Y坐标,然后通过u3d里一个内置函数camera.ScreenToWorldPoint()来获得我现在举一个例子来说明下具体应用,我现在有一个场景,里面有一个盒子,还有一个main camera,现在我想通过鼠标在屏幕上点击,然后会从main camera的位置发射子弹去击中盒子,所以就需要用到转换坐标的问题了。再 罗嗦一句,哈哈为啥要非要这么做呢,如果直接使用3D坐标呢?嗯如果直接这样做的话,你的屏幕的不是一个固定的了,你的子弹射击到哪里,你的摄像机也会转 动,而且不是你想要的点,假如我想从在屏幕的左上方去击发子弹,但是不转换坐标的话你的子弹仍然只是从一个固 阅读全文
posted @ 2012-03-21 15:56 渡蓝 阅读(2322) 评论(0) 推荐(0)
摘要:-----------------调用外部的EXE-----------------------using UnityEngine;using System.Collections;public class openexe: MonoBehaviour {// Use this for initializationvoid Start () { System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();Info.FileName = "C:\\Program Files\\ 阅读全文
posted @ 2012-03-21 15:09 渡蓝 阅读(155) 评论(0) 推荐(0)
摘要:------------读取外部文本---------------------------var MyText: TextAsset;function OnGUI () {GUI.Label(Rect(10, 10, 500, 500), Text2.text);}-----------GUI函数 判断鼠标按下------------- if((Event.current.type == EventType.mouseDown) && (Event.current.button == 0)) { print("asdasdasd"); }---------- 阅读全文
posted @ 2012-03-21 15:07 渡蓝 阅读(201) 评论(0) 推荐(0)
摘要:--------------每次旋转60度---------------------var rotating : boolean = false;var rotateSpeed : int = 12;function OnGUI(){ if(GUILayout.Button("Rotateme")) { rotating=true; SendMessage("Rotateme"); } }function Rotateme(){ if (rotating) { var curRotate : float = 0; var startRotate : fl 阅读全文
posted @ 2012-03-21 14:58 渡蓝 阅读(306) 评论(0) 推荐(0)