29784人加入学习
(126人评价)
Unity API常用方法和类详细讲解(基于Unity5.6)
价格 免费
承诺服务

sendMessageUpwards 查找本物体上包括父物体 脚本调用传递过来方法名的方法。

[展开全文]

一般由A场景跳转到B场景的话,A场景物体会全部被销毁,如果物体调用了DontDestoryOnLoad就不会在跳转场景时被销毁。

 

findObjectsOfType<> 不查找未激活物体

[展开全文]
public class WWWCS : MonoBehaviour {
	public string url;
	// Use this for initialization
	IEnumerator Start () {
		WWW www = new WWW(url);
		yield return www;
		Renderer renderer = GetComponent<Renderer>();
		renderer.material.mainTexture = www.texture;
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

 

[展开全文]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System;

public class jiekouCS : MonoBehaviour,IPointerDownHandler{
	public void OnPointerDown(PointerEventData eventData)//这些参数都是不能改变的,鼠标按下时触发事件
	{
		Debug.Log("OnPointerDown");
	}

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

 

[展开全文]

类变量获取

1.物体有且仅有唯一一个Transform组件

2.父物体未激活,子物体也处于未激活

3.activeHierarchy 物体激活状态

4.activeSelf  父物体被禁用,activeSelf还可以是true

5.未激活一样可以获取到属性,只是不在场景中显示Update方法不在执行

[展开全文]

Raycast():只会检测碰撞到的第一个物体

RaycastAll():会检测碰撞到的所有物体

 

[展开全文]

1.new 新的物体--空的物体

2.GameObject.Instantiable(prefab). 根据perfab或另外一个物体进行初始化,可理解为clone

3.GameObject.createPrimitive(PrimitiveType.物体)

[展开全文]

Raycast:射线检测与其他物体发生碰撞的条件

1.物体必须在射线的视野内

2.物体必须有碰撞器

 

[展开全文]

1.不同帧,占用时间不一样。

2.Time.deltaTime 用来控制运动相关的东西

3.timeScale 设置deltaTime运动速率,对所有deltaTime产生影响。设为0暂停,0.5f等为慢动作

4.relatimeSinceStartup用在方法执行后再获取realtime做性能测试 

 

[展开全文]

Application中的常用静态变量和静态方法

public class ApplicationCS : MonoBehaviour {

	// Use this for initialization
	void Start () {
		//Application在应用中用,EditorApplication在编辑器下用
		print(Application.identifier);//标识
		print(Application.companyName);//公司名
		print(Application.productName);//项目名
		print(Application.installerName);//安装名
		print(Application.installMode);
		print(Application.isEditor);
		print(Application.isFocused);//是否再焦点
		print(Application.isMobilePlatform);//是否为移动平台
		print(Application.isPlaying);//是否再运行
		print(Application.platform);//平台
		print(Application.unityVersion);//unity版本
		print(Application.version);//游戏版本
		print(Application.runInBackground);//是否可以在后台运行

		Application.Quit();//只有build出来之后,才能用它来退出游戏
		Application.OpenURL("www.sikiede.com");//打开网址
		//Application.CaptureScreenshot("游戏截图");//屏幕截图
	}
	
	// Update is called once per frame
	void Update () {
		//在编辑器模式下退出游戏
		if (Input.GetKeyDown(KeyCode.Space))
		{
			UnityEditor.EditorApplication.isPlaying = false;
		}
		
	}
}

 

[展开全文]

通过Application获取datapath(没好好看,过几天再看一下)

 

[展开全文]

Camera.main:通过标签获取maincamera上的camera组件,但是他的Tag必须为maincamera。

public class CameraCS : MonoBehaviour {
	private Camera maincamera;
	// Use this for initialization
	void Start () {
		maincamera = Camera.main;//获取main camera上的camera组件
	}
	
	// Update is called once per frame
	void Update () {
		//通过camera,把屏幕上的点转化为射线,进行射线检测
		Ray ray = maincamera.ScreenPointToRay(Input.mousePosition);//把屏幕上的点,转变为射线
		RaycastHit hit;//存储射线碰撞到的游戏物体,是一个out类型的引用参数
		bool isCollider = Physics.Raycast(ray, out hit);//判断有没有碰撞到
		if (isCollider)
		{
			Debug.Log(hit.collider);//输出鼠标碰到的物体是什么
		}
	}
}

 

[展开全文]

通过AddForce控制运动

AddForce:给游戏物体施加一个力。

public class RigidbodyPositionCS : MonoBehaviour {
	public Rigidbody player;
	public Transform enemy;
	public int force;
	
	void Update () {

		player.AddForce(Vector3.forward * force);
	}
}

 

[展开全文]
public class RigidbodyPositionCS : MonoBehaviour {
	public Rigidbody player;
	public Transform enemy;
	// Use this for initialization
	// Update is called once per frame
	void Update () {
		//按下空格,通过Rigidbody的MoveRotation实现缓慢旋转
		if (Input.GetKey(KeyCode.Space))
		{
			Vector3 dir = enemy.position - player.position;//player望向enemy,dir表示前方向
			dir.y = 0;//让他们的y坐标不受影响
			Quaternion target = Quaternion.LookRotation(dir);//实现前方向与dir保持一致的旋转,就是按照前方向转向enemy
			player.MoveRotation (Quaternion.Slerp(player.rotation, target, Time.deltaTime * 0.5f));
		
	}
}
}

旋转控制多的时候,通过Rigidbody来控制,解决性能

[展开全文]

Rigidbody刚体组件中position和MovePosition控制移动

position控制移动,是突然移过去的

MovePosition控制移动,是缓慢移动过去的

public class RigidbodyPositionCS : MonoBehaviour {
	public Rigidbody player;
	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		player.position = player.transform.position + Vector3.forward * Time.deltaTime;//控制移动,是从一个位置突然跳转的另一个位置
		player.MovePosition(player.transform.position + Vector3.forward * Time.deltaTime);//缓慢移动
	}
}

[展开全文]

Quaternion中的Lerp和Slerp插值运算

做旋转运算时,用slerp比lerp好,旋转运算,一般都用S开头的

public class SiyuanshuCS : MonoBehaviour {
	public Transform player;
	public Transform enemy;
	// Use this for initialization
	
	
	// Update is called once per frame
	void Update () {
		//实现player缓慢转向,望向enemy
		Vector3 dir = enemy.position - player.position;//player望向enemy,dir表示前方向
		dir.y = 0;//让他们的y坐标不受影响
		Quaternion target= Quaternion.LookRotation(dir);
		player.rotation = Quaternion.Slerp(player.rotation, target, Time.deltaTime * 0.5f);
		
		
	}
}

 

 

[展开全文]

Quaternion中的LookRotation方法

1.欧拉角和四元数的转换

cube.rotation = Quaternion.Euler(new Vector3(0, 0, 0));//用Quaternion.Euler()方法把欧拉角转换为四元数
print(cube.rotation.eulerAngles);//将四元数转换为欧拉角

2.Quaternion.LookRotation()用来处理让player望向某个目标

把一个前方向转变为四元数:把一个游戏物体的forward方向与传递过来的方向保持一致,得到的旋转就是四元数

public class SiyuanshuCS : MonoBehaviour {
	public Transform player;
	public Transform enemy;
  void Update () {
		//实现按下空格,player望向enemy
		if (Input.GetKeyDown(KeyCode.Space))
		{
			Vector3 dir = enemy.position - player.position;//player望向enemy,dir表示前方向
			dir.y = 0;//让他们的y坐标不受影响
            //实现前方向与dir保持一致的旋转,就是按照前方向转向enemy
			player.rotation = Quaternion.LookRotation(dir);

		}
		
	}
}

 

[展开全文]

Quaternion四元数介绍以及和欧拉角的区别

欧拉角(eulerAngles):表示在x,y,z轴旋转多少度,x,z轴是以自身来旋转的,y轴是以世界坐标旋转的,方便我们观察

四元数:方便用来运算

public class SiyuanshuCS : MonoBehaviour {
	public Transform cube;
	// Use this for initialization
	void Start () {
		print(cube.eulerAngles);//输出欧拉角的值
		print(cube.rotation);//输出四元数的值
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

 

 

[展开全文]

授课教师

SiKi学院老师

课程特色

图文(1)
下载资料(2)
视频(71)