来公司快一个月了,想想马上就要发工资了还有小激动。想想自己以前写的那些项目,真是一堆Bug集合体,看来以后在公司不断的学习中还要不断的追求完美,路飞这是要开第二档的节奏啊。哇咔咔。。。
代码一:
//加载Resources文件夹下的文件
GameObject logo = Instantiate(Resources.Load(@"manyPrefab/logo")) as GameObject;
代码二:
加载视频(在Web打包中将视频文件存放到*.htm和*.unity文件同一目录下)
第一步、加载视频文件前先声明变量
//加载视频
MovieTexture mt;
string mp;
WWW www;
第二步、Start方法中初始化视频"j.ogg"为视频名称。mt我理解为视频流。
IEnumerator Start()
{
mp = @"j.ogg";
www = new WWW(mp);
yield return www;
if (www.isDone)
{
mt = www.movie;
}
}
第三步、在界面中加载进来,这里我用了UITexture
if (mt != null)
{
uiTexture.mainTexture=mt;
mt.loop=true;
mt.Play();
}
代码三:
GameObject位移
TweenPosition.Begin(gameObject,1.5f,new Vector(0,0,0));
延迟执行:这里的yield是需要返回的,所以方法也必须是带返回类型IEnumerator
yield return new WaitForSeconds(0.7f);
代码四:
鼠标射线检测,检测对象的Collider,tar就是检测到的对象
if (Input.GetMouseButtonDown(0))
{
Vector3 mp = Input.mousePosition;
if (cam != null)
{
RaycastHit hitInfo;
Ray ray = cam.ScreenPointToRay(new Vector3(mp.x, mp.y, 0f)); //从鼠标位置发射一条射线
if (Physics.Raycast(ray.origin, ray.direction, out hitInfo)) //射线扑捉对象
{
if (hitInfo.collider.transform.tag == "yqrz")
{
tar = hitInfo.collider.transform;
}
}
}
}
代码五:
基础的transform变换
当没有父物体时,Position与localPosition相同。
gameObject.transform.eulerAngles = new Vector3(2, 0, 0);//固定对象视角
示例代码:人物移动脚本
void xuanzhuanScene()
{
if (Input.GetMouseButton(1))
{
float mousX = Input.GetAxis("Mouse X");
this.transform.transform.Rotate(0, mousX, 0);
float mousY = Input.GetAxis("Mouse Y");
_Camera.transform.Rotate(-mousY*Time.timeScale, 0, 0);
if (_Camera.transform.eulerAngles.x > 30&&_Camera.transform.eulerAngles.x<180)
{
_Camera.transform.eulerAngles = new Vector3(30, _Camera.transform.eulerAngles.y, _Camera.transform.eulerAngles.z);
}
if (_Camera.transform.eulerAngles.x<330&&_Camera.transform.eulerAngles.x>180)
{
_Camera.transform.eulerAngles = new Vector3(330, _Camera.transform.eulerAngles.y, _Camera.transform.eulerAngles.z);
}
}
}
void Cam_Move()
{
if (Input.GetKey("w"))
{
this.transform.Translate(Vector3.forward*Time.deltaTime*Cam_speed);
}
if (Input.GetKey("a"))
{
this.transform.Translate(Vector3.left * Time.deltaTime * Cam_speed);
}
if (Input.GetKey("d"))
{
this.transform.Translate(Vector3.right * Time.deltaTime * Cam_speed);
}
if (Input.GetKey("s"))
{
this.transform.Translate(Vector3.back * Time.deltaTime * Cam_speed);
}
}
Unity界面很多,界面自己相互转换的时候难免相互干扰,所以除了代码整洁之外也要注意逻辑的简洁,执行与销毁、重置一定要分开去写,减少修改难度。
代码一:
//加载Resources文件夹下的文件
GameObject logo = Instantiate(Resources.Load(@"manyPrefab/logo")) as GameObject;
代码二:
加载视频(在Web打包中将视频文件存放到*.htm和*.unity文件同一目录下)
第一步、加载视频文件前先声明变量
//加载视频
MovieTexture mt;
string mp;
WWW www;
第二步、Start方法中初始化视频"j.ogg"为视频名称。mt我理解为视频流。
IEnumerator Start()
{
mp = @"j.ogg";
www = new WWW(mp);
yield return www;
if (www.isDone)
{
mt = www.movie;
}
}
第三步、在界面中加载进来,这里我用了UITexture
if (mt != null)
{
uiTexture.mainTexture=mt;
mt.loop=true;
mt.Play();
}
代码三:
GameObject位移
TweenPosition.Begin(gameObject,1.5f,new Vector(0,0,0));
延迟执行:这里的yield是需要返回的,所以方法也必须是带返回类型IEnumerator
yield return new WaitForSeconds(0.7f);
代码四:
鼠标射线检测,检测对象的Collider,tar就是检测到的对象
if (Input.GetMouseButtonDown(0))
{
Vector3 mp = Input.mousePosition;
if (cam != null)
{
RaycastHit hitInfo;
Ray ray = cam.ScreenPointToRay(new Vector3(mp.x, mp.y, 0f)); //从鼠标位置发射一条射线
if (Physics.Raycast(ray.origin, ray.direction, out hitInfo)) //射线扑捉对象
{
if (hitInfo.collider.transform.tag == "yqrz")
{
tar = hitInfo.collider.transform;
}
}
}
}
代码五:
基础的transform变换
当没有父物体时,Position与localPosition相同。
gameObject.transform.eulerAngles = new Vector3(2, 0, 0);//固定对象视角
示例代码:人物移动脚本
void xuanzhuanScene()
{
if (Input.GetMouseButton(1))
{
float mousX = Input.GetAxis("Mouse X");
this.transform.transform.Rotate(0, mousX, 0);
float mousY = Input.GetAxis("Mouse Y");
_Camera.transform.Rotate(-mousY*Time.timeScale, 0, 0);
if (_Camera.transform.eulerAngles.x > 30&&_Camera.transform.eulerAngles.x<180)
{
_Camera.transform.eulerAngles = new Vector3(30, _Camera.transform.eulerAngles.y, _Camera.transform.eulerAngles.z);
}
if (_Camera.transform.eulerAngles.x<330&&_Camera.transform.eulerAngles.x>180)
{
_Camera.transform.eulerAngles = new Vector3(330, _Camera.transform.eulerAngles.y, _Camera.transform.eulerAngles.z);
}
}
}
void Cam_Move()
{
if (Input.GetKey("w"))
{
this.transform.Translate(Vector3.forward*Time.deltaTime*Cam_speed);
}
if (Input.GetKey("a"))
{
this.transform.Translate(Vector3.left * Time.deltaTime * Cam_speed);
}
if (Input.GetKey("d"))
{
this.transform.Translate(Vector3.right * Time.deltaTime * Cam_speed);
}
if (Input.GetKey("s"))
{
this.transform.Translate(Vector3.back * Time.deltaTime * Cam_speed);
}
}
Unity界面很多,界面自己相互转换的时候难免相互干扰,所以除了代码整洁之外也要注意逻辑的简洁,执行与销毁、重置一定要分开去写,减少修改难度。