首页 > 代码库 > Unity3D 学习教程 12 C# 发射炮弹
Unity3D 学习教程 12 C# 发射炮弹
建立一个炮弹
一个球体
双击脚本
进入编辑器
1 using UnityEngine; 2 using System.Collections; 3 4 public class acc : MonoBehaviour { 5 6 // Use this for initialization 7 public Transform Q; 8 int speed=50; 9 void Start () {10 11 }12 13 // Update is called once per frame14 void Update () {15 float x = Input.GetAxis("Horizontal") * Time.deltaTime * speed;//左右移动16 float z = Input.GetAxis("Vertical") * Time.deltaTime * speed;// 前后移动17 //主摄像机物体 移动18 transform.Translate(x,0,z);19 20 if(Input.GetKeyDown(KeyCode.Mouse0))21 {22 Transform n = (Transform)Instantiate(Q,transform.position,transform.rotation);23 Vector3 f = transform.TransformDirection(Vector3.forward);24 n.rigidbody.AddForce(f*2000);25 }26 27 print(x+"--"+z);28 }29 }
public Transform Q;
建立一个炮弹 Q
Transform
Transform 变换
Inherits from Component,IEnumerable
Position, rotation and scale of an object.
物体的位置、旋转和缩放。
Every object in a scene has a Transform. It‘s used to store and manipulate the position, rotation and scale of the object. Every Transform can have a parent, which allows you to apply position, rotation and scale hierarchically. This is the hierarchy seen in the Hierarchy pane. They also support enumerators so you can loop through children using:
场景中的每一个物体都有一个Transform。用于储存并操控物体的位置、旋转和缩放。每一个Transform可以有一个父级,允许你分层次应用位置、旋转和缩放。可以在Hierarchy面板查看层次关系。他们也支持计数器(enumerator),因此你可以使用循环遍历子物体。
- C#
- JavaScript
using UnityEngine;using System.Collections;public class example : MonoBehaviour {public void Awake() {foreach (Transform child in transform) {child.position += Vector3.up * 10.0F;}}}
// Moves all transform children 10 units upwards!//向上移动所有变换的子物体10个单位for (var child : Transform in transform) { child.position += Vector3.up * 10.0;}
参见:Physics 类.
Variables变量
- positionThe position of the transform in world space. 在世界空间坐标transform的位置。
- localPositionPosition of the transform relative to the parent transform. 相对于父级的变换的位置。
- eulerAnglesThe rotation as Euler angles in degrees. 旋转作为欧拉角度。
- localEulerAnglesThe rotation as Euler angles in degrees relative to the parent transform‘s rotation. 旋转作为欧拉角度,相对于父级的变换旋转角度。
- rightThe red axis of the transform in world space. 在世界空间坐标变换的红色轴。也就是x轴。
- upThe green axis of the transform in world space. 在世界空间坐标变换的绿色轴。也就是y轴。
- forwardThe blue axis of the transform in world space. 在世界空间坐标变换的蓝色轴。也就是z轴。
- rotationThe rotation of the transform in world space stored as a Quaternion. 在世界空间坐标物体变换的旋转角度作为Quaternion储存。
- localRotationThe rotation of the transform relative to the parent transform‘s rotation. 物体变换的旋转角度相对于父级的物体变换的旋转角度。
- localScaleThe scale of the transform relative to the parent. 相对于父级物体变换的缩放。
- parentThe parent of the transform. 物体变换的父级。
- worldToLocalMatrixMatrix that transforms a point from world space into local space (Read Only). 矩阵变换的点从世界坐标转为自身坐标(只读)。
- localToWorldMatrixMatrix that transforms a point from local space into world space (Read Only). 矩阵变换的点从自身坐标转为世界坐标(只读)。
- rootReturns the topmost transform in the hierarchy. 返回层次最高的变换。
- childCountThe number of children the Transform has. 变换的子物体数量。
- lossyScaleThe global scale of the object (Read Only). 物体的全局缩放(只读)。
Functions函数
- TranslateMoves the transform in the direction and distance of translation. 移动transform在translation的方向和距离。
- RotateApplies a rotation of eulerAngles.z degrees around the z axis, eulerAngles.x degrees around the x axis, and eulerAngles.y degrees around the y axis (in that order). 应用一个欧拉角的旋转角度,eulerAngles.z度围绕z轴,eulerAngles.x度围绕x轴,eulerAngles.y度围绕y轴(这样的顺序)。
- RotateAroundRotates the transform about axis passing through point in world coordinates by angle degrees. 按照angle度通过在世界坐标的point轴旋转物体。
- LookAtRotates the transform so the forward vector points at /target/‘s current position. 旋转物体,这样向前向量指向target的当前位置。
- TransformDirectionTransforms direction from local space to world space. 从自身坐标到世界坐标变换方向。
- InverseTransformDirectionTransforms a direction from world space to local space. The opposite of Transform.TransformDirection. 变换方向从世界坐标到自身坐标。和Transform.TransformDirection相反。
- TransformPointTransforms position from local space to world space. 变换位置从自身坐标到世界坐标。
- InverseTransformPointTransforms position from world space to local space. The opposite of Transform.TransformPoint. 变换位置从世界坐标到自身坐标。和Transform.TransformPoint相反。
- DetachChildrenUnparents all children. 所有子物体解除父子关系。
- FindFinds a child by name and returns it. 通过名字查找子物体并返回它。
- IsChildOfIs this transform a child of parent? 这个变换是父级的子物体?
Inherited members继承成员
Inherited Variables继承变量
- transformThe Transform attached to this GameObject (null if there is none attached). Transform附加到GameObject(游戏物体)(如无附加则为空)。
- rigidbodyThe Rigidbody attached to this GameObject (null if there is none attached). Rigidbody附加到GameObject(游戏物体)(如无附加则为空)。
- cameraThe Camera attached to this GameObject (null if there is none attached). Camera附加到GameObject(游戏物体)(如无附加则为空)。
- lightThe Light attached to this GameObject (null if there is none attached). Light附加到GameObject(游戏物体)(如无附加则为空)。
- animationThe Animation attached to this GameObject (null if there is none attached). Animation附加到GameObject(游戏物体)(如无附加则为空)。
- constantForceThe ConstantForce attached to this GameObject (null if there is none attached). ConstantForce附加到GameObject(游戏物体)(如无附加则为空)。
- rendererThe Renderer attached to this GameObject (null if there is none attached). Renderer附加到GameObject(游戏物体)(如无附加则为空)。
- audioThe AudioSource attached to this GameObject (null if there is none attached). AudioSource附加到GameObject(游戏物体)(如无附加则为空)。
- guiTextThe GUIText attached to this GameObject (null if there is none attached). GUIText附加到GameObject(游戏物体)(如无附加则为空)。
- networkViewThe NetworkView attached to this GameObject (Read Only). (null if there is none attached) NetworkView附加到GameObject(游戏物体)(只读)(如无附加则为空)。
- guiTextureThe GUITexture attached to this GameObject (Read Only). (null if there is none attached) GUITexture附加到GameObject(游戏物体)(只读)(如无附加则为空)。
- colliderThe Collider attached to this GameObject (null if there is none attached). Collider附加到GameObject(游戏物体)(如无附加则为空)。
- hingeJointThe HingeJoint attached to this GameObject (null if there is none attached). HingeJoint附加到GameObject(游戏物体)(如无附加则为空)。
- particleEmitterThe ParticleEmitter attached to this GameObject (null if there is none attached). ParticleEmitter附加到GameObject(游戏物体)(如无附加则为空)。
- gameObjectThe game object this component is attached to. A component is always attached to a game object. 组件附加的游戏物体。一个组件总是被附加到一个游戏物体。
- tagThe tag of this game object. 游戏物体的标签。
- nameThe name of the object. //物体的名字
- hideFlagsShould the object be hidden, saved with the scene or modifiable by the user? 物体是否被隐藏、保存在场景中或被用户修改?
Inherited Functions继承函数
- GetComponentReturns the component of Type type if the game object has one attached, null if it doesn‘t. 如果游戏物体有一个附加,则返回Type类型的组件,如果没有则为null。
- GetComponent.<T>
- GetComponentReturns the component with name type if the game object has one attached, null if it doesn‘t. 如果游戏物体有一个附加,则返回名字类型组件,如果没有则为null。
- GetComponentInChildrenReturns the component of Type type in the GameObject or any of its children using depth first search. 返回Type类型组件,在GameObject或它的任何子物体使用深度优先搜索,仅返回激活的组件。
- GetComponentInChildren.<T>
- GetComponentsInChildrenReturns all components of Type type in the GameObject or any of its children. 在GameObject或任何它的子物体,返回全部Type类型组件
- GetComponentsInChildren.<T>
- GetComponentsReturns all components of Type type in the GameObject. 在游戏物体返回全部Type类型组件。
- GetComponents.<T>
- CompareTagIs this game object tagged tag? 游戏物体有被标记标签么?
- SendMessageUpwardsCalls the method named methodName on every MonoBehaviour in this game object and on every ancestor of the behaviour 在游戏物体每一个MonoBehaviour和每一个behaviour的祖先上调用名为methodName的方法。
- SendMessageCalls the method named methodName on every MonoBehaviour in this game object. 在游戏物体每一个MonoBehaviour上调用名为methodName的方法。
- BroadcastMessageCalls the method named methodName on every MonoBehaviour in this game object or any of its children. 在游戏物体每一个MonoBehaviour和它的全部子物体上调用名为methodName的方法。
- GetInstanceIDReturns the instance id of the object. 返回物体的实例ID
- ToStringReturns the name of the game object. 返回游戏物体的名称。
Inherited Class Functions继承类函数
- operator boolDoes the object exist? 物体是否存在?
- InstantiateClones the object original and returns the clone. 克隆原始物体,并返回克隆的物体
- Instantiate.<T>
- DestroyRemoves a gameobject, component or asset. 删除一个游戏物体、组件或资源
- DestroyImmediateDestroys the object obj immediately. It is strongly recommended to use Destroy instead. 立即销毁物体obj,强烈建议使用Destroy代替。
- FindObjectsOfTypeReturns a list of all active loaded objects of Type type. 返回Type类型的所有激活的加载的物体列表
- FindObjectOfTypeReturns the first active loaded object of Type type. 返回Type类型第一个激活的加载的物体。
- operator ==Compares if two objects refer to the same 比较如果两个物体相同
- operator !=Compares if two objects refer to a different object 比较如果两个物体不同
- DontDestroyOnLoadMakes the object target not be destroyed automatically when loading a new scene. 加载新场景的时候使目标物体不被自动销毁。
int speed=50;
是步长
if(Input.GetKeyDown(KeyCode.Mouse0))
按下鼠标左键
Transform n = (Transform)Instantiate(Q,transform.position,transform.rotation);
创建一个新炮弹
Instantiate 是object类型 需要强制转换
Vector3 f = transform.TransformDirection(Vector3.forward);
三维坐标 Vector3.forward 0 0 1 向前
n.rigidbody.AddForce(f*2000);
给跑断加力
最后
点击 摄像头 把炮弹拖向 定义的public的变量
520 520小说 小说520 小说520 5200 小说5200 5200小说 5200小说网
www.520books.com
http://www.cnblogs.com/goodchenqing/
http://blog.sina.com.cn/goodchenqing
http://goodchenqing.bokee.com/
http://blog.csdn.net/abc288abcd/article/category/2786567
Unity3D 学习教程 12 C# 发射炮弹