转自:http://blog.youkuaiyun.com/monzart7an/article/details/23199647
一、在编辑器上面添加一个组件。这个不用多说。
二、在脚本中利用AddComponent函数添加一个组件,例如:
using UnityEngine;
using System.Collections;
public class CharacterSpawner : MonoBehaviour {
public void Spawn(GameObject CharacterSlected){
if(CharacterSlected){
GameObject player = (GameObject)GameObject.Instantiate(CharacterSlected,this.transform.position,Quaternion.identity);
if(!player.GetComponent<PlayerManager>()){
player.AddComponent<PlayerManager>();
}
}
}
}
AddComponent的官方说明:
GameObject.AddComponent
Adds a component class named className to the game object.
Some components require other components to exist in the same game object as well. This function automatically adds any required components as well eg. if you add a HingeJoint this will automatically add a Rigidbody as well.
<em>using UnityEngine;
using System.Collections;
public class Example : <a target=_blank target="_blank" href="http://blog.youkuaiyun.com/monzart7an/article/details/MonoBehaviour.html" style="color: rgb(20, 93, 123); text-decoration: none;">MonoBehaviour</a> {
public <a target=_blank target="_blank" href="http://blog.youkuaiyun.com/monzart7an/article/details/SphereCollider.html" style="color: rgb(20, 93, 123); text-decoration: none;">SphereCollider</a> sc;
void Example() {
gameObject.AddComponent("FoobarScript");
sc = gameObject.AddComponent("<a target=_blank target="_blank" href="http://blog.youkuaiyun.com/monzart7an/article/details/SphereCollider.html" style="color: rgb(20, 93, 123); text-decoration: none;">SphereCollider</a>") as <a target=_blank target="_blank" href="http://blog.youkuaiyun.com/monzart7an/article/details/SphereCollider.html" style="color: rgb(20, 93, 123); text-decoration: none;">SphereCollider</a>;
}
}
</em>
Adds a component class of type componentType to the game object. C# Users can use a generic version.
<em>no example available in C#</em>
三、利用RequireComponent添加一个组件。
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(PlayerCharacterController))]
[RequireComponent(typeof(PlayerCharacterUI))]
[RequireComponent(typeof(PlayerQuestManager))]
[RequireComponent(typeof(PlayerSave))]
public class PlayerManager : MonoBehaviour {
}
RequireComponent意思是表面这个类一定需要哪些组件,如果目前这些组件没有被加上,就自动加上。
官方解释:
RequireComponentNamespace: UnityEngine
The RequireComponent attribute lets automatically add required component as a dependency.
<em>// Mark the PlayerScript as requiring a rigidbody in the game object.
@script <a target=_blank target="_blank" href="http://blog.youkuaiyun.com/monzart7an/article/details/RequireComponent.html" style="color: rgb(20, 93, 123); text-decoration: none;">RequireComponent</a>(<a target=_blank target="_blank" href="http://blog.youkuaiyun.com/monzart7an/article/details/Rigidbody.html" style="color: rgb(20, 93, 123); text-decoration: none;">Rigidbody</a>)</em><p class="basic" style="margin-top: 0px; margin-bottom: 1.5em; padding-top: 0px; padding-bottom: 0px; font-family: Helvetica, Arial, sans-serif; color: rgb(68, 68, 68);"></p><em>function FixedUpdate() {
rigidbody.AddForce(<a target=_blank target="_blank" href="http://blog.youkuaiyun.com/monzart7an/article/details/Vector3-up.html" style="color: rgb(20, 93, 123); text-decoration: none;">Vector3.up</a>);
}
</em>
<em>[<a target=_blank target="_blank" href="http://blog.youkuaiyun.com/monzart7an/article/details/RequireComponent.html" style="color: rgb(20, 93, 123); text-decoration: none;">RequireComponent</a> (typeof (<a target=_blank target="_blank" href="http://blog.youkuaiyun.com/monzart7an/article/details/Rigidbody.html" style="color: rgb(20, 93, 123); text-decoration: none;">Rigidbody</a>))]
public class PlayerScript : <a target=_blank target="_blank" href="http://blog.youkuaiyun.com/monzart7an/article/details/MonoBehaviour.html" style="color: rgb(20, 93, 123); text-decoration: none;">MonoBehaviour</a> {
void FixedUpdate() {
rigidbody.AddForce(<a target=_blank target="_blank" href="http://blog.youkuaiyun.com/monzart7an/article/details/Vector3-up.html" style="color: rgb(20, 93, 123); text-decoration: none;">Vector3.up</a>);
}
}</em>
本文详细介绍了在游戏开发中使用Unity引擎时如何通过AddComponent、RequireComponent等方法高效地管理和添加组件,以实现角色生成、自动化设置等功能。重点讨论了组件添加的流程、注意事项及其实现案例。
365

被折叠的 条评论
为什么被折叠?



