以下学习内容根据 极客学院 所授内容学习并记录
一、首先创建第一人称
*1.在项目中引入包:Characters
*2.然后将在FirstPersonCharactor中Prefabs里面的FPSController拖到Hierarchy中,这时候创建了一个第一人称视角的角色
二、创建小球
*1.创建一个Sphere,命名为Ball,并为之添加Rigidbody
三、编写脚本并添加至FPSController的FirstPersonCharactor中
using UnityEngine;
using System.Collections;
public class PointAndDirection : MonoBehaviour {
public GameObject ball;
void Awake(){
ball = GameObject.Find ("Ball");
}
// Use this for initialization
//void Start () {
//
//}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.Q)) {
ball.transform.position = transform.TransformPoint (0,0,2);
ball.transform.parent = transform;
ball.GetComponent<Rigidbody> ().isKinematic = true;//其中,isKinematic的意思为“是否动力学”
}
if (Input.GetKey (KeyCode.E)) {
if (ball.transform.parent == this.transform) {
ball.GetComponent<Rigidbody>().isKinematic = false;
transform.DetachChildren();//分离所有子物体
Vector3 camDirection = transform.TransformDirection (0,0,10);
ball.GetComponent<Rigidbody>().AddForce (camDirection,ForceMode.Impulse);
}
}
}
}
这时,当按下Q键时,Ball成为第一人称主角的子物体,并放在平行位置;当按下E键时,Ball的父物体为第一人称主角的父物体,并给予一个方向为 (0,0,10) 的力,小球则做抛物飞出
按下Q前:
按下Q时:
按下E后: