【1】学习中的使用的类
1.Rigidbody:通过物理模拟控制物体的位置。
本例中使用的方法: void AddForce(Vector3 force, ForceMode mode = ForceMode.Force);给刚体施加一个力
2.Animator:用于控制Mecanim动画系统的界面。
本例中使用的方法:SetBool(string name, bool value);
设置给定布尔参数的值。
使用Animator.SetBool 通过脚本将布尔值传递给Animator Controller。
3. Debug:包含在开发游戏时简化调试的方法的类。
本例中使用的方法:void DrawRay(Vector3 start, Vector3 dir, Color color = Color.white,float duration = 0.0f,bool depthTest = true);
在世界坐标中从起点沿着方向和特定距离绘制一条有颜色的线。
4.Ray:射线的表示。
构造方法:Ray(Vector3 origin, Vector3 direction):创建一条射线从origin
沿direction
。。
public bool interacting; public Rigidbody s1; public Transform s2; private Animator anim; // Use this for initialization void Start () { anim = GetComponent<Animator>(); } // Update is called once per frame void Update () { if (interacting&&Input.GetKeyDown(KeyCode.Space)) {anim.SetBool("openChest",true); Debug.Log(1); Rigidbody s3; s3 = Instantiate(s1, s2.position, s2.rotation) as Rigidbody; s3.AddForce(s2.up * 3); } } void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Player") { interacting = true; } } void OnTriggerExit(Collider other) { if (other.gameObject.tag == "Player") { interacting = false; } }
public CapsuleCollider player; private GameObject ememy; private Ray ray; private RaycastHit hit; public float rayDistance=4f; private Enemy EnemyScript; // Use this for initialization void Start () { player = GetComponent<CapsuleCollider>(); } void Update () { float inputHorizontal = Input.GetAxis("Horizontal"); float inputVertical = Input.GetAxis("Vertical"); Vector3 s = new Vector3(inputHorizontal,0f,inputVertical); transform.Translate(s*Time.deltaTime*5); ray=new Ray(transform.position+new Vector3(0f,player.center.y,0f),transform.forward); Debug.DrawRay(ray.origin,ray.direction*rayDistance,Color.red); if (Physics.Raycast(ray,out hit)) { if (hit.distance < rayDistance) { if (hit.collider.gameObject.tag == "Enemy") { Debug.Log("发现敌人"); } } } } void OnCollisionEnter(Collision collision) { if (collision.gameObject.tag=="Enemy") { EnemyScript = collision.gameObject.GetComponent<Enemy>(); EnemyScript.blood -= 1; } }