GameObject.Find(¡°ÎïÌåÃû¡±); »ò ±äÁ¿ = GameObject.FindWithTag(¡°ÎïÌå±êÇ©Ãû¹ó¡±); 11. ʹÓù²ÓбäÁ¿£ºÍÏ·ÅÒ»¸öÎïÌåµ½±äÁ¿ÉÏ
ÒýÓýű¾ËùÔÚµÄÎïÌåµÄ×é¼þÉϵIJÎÊý£ºÈ磺transform.position=Vector3(0,5.4,4); µ÷Õû½Å±¾ËùÔÚÎïÌåÉϵIJÎÊý£ºrenderer.material.color = Color.red; light.intensity=8; ¾ÍÊÇ˵Èç¹û°Ñ½Å±¾·ÅÔÚÎïÌåÉÏÖ®ºó£¬¾Í¿ÉÒÔÖ±½ÓÐÞ¸ÄÎïÌåµÄ×é¼þÊôÐÔ 12. SendMessage()ÃüÁһ¸öµ÷ÓÃÆäËûÎïÌåÉÏÖ¸ÁîµÄ·½·¨---theCube1.SendMessage(¡°start¡±); 13. GetComponet()ÃüÁÒýÓÃÒ»¸ö×é¼þ¡£
14. °¸Àý¡ª±à¼×Ô¼ºµÄµÚÒ»È˳ƿØÖÆÆ÷
1£©unityÖеÚÒ»È˳ÆÓÃÊó±ê¿ØÖÆ·½Ïò£¬×Ô¼º´´½¨ÓüüÅÌ·½Ïò¼ü¿ØÖƽÇÉ«ÒÆ¶¯
2£©´´½¨½ºÄÒÌåµ±×öµÚÒ»È˳ƿØÖÆÆ÷µÄʵÌå¡£ 3£©±àд½Å±¾¸³Óèµ½½ºÄÒÌåÉÏ¡£
4£©½Å±¾£ºFixedUpdate£¨£©£ºÃ¿¸ôÒ»¶¨Ê±¼äÖ´ÐÐÒ»´Îº¯Êý
5£©movedirection.y -= gravity*Time.deltaTime;
6£©½ÇÉ«¿ØÖÆÆ÷ÉÏÓÐMoveÃüÁîÀ´Òƶ¯¡ª>ÒÆ¶¯ÐÅÏ¢ÒÔ¼°Òƶ¯¹ý³ÌÖеÄÅöײÐÅÏ¢¶¼Äܱ£´æ 7£©½ÇÉ«ÅöײÆ÷·¢ÉúÅöײ£º
CollisionFlag.CollidedBelow£ºµ×²¿·¢ÉúÁËÅöײ¡±flags & CollisionFlags.CollidedBelow¡±·µ»Ø1 CollisionFlag.CollidedNone£ºÃ»Óз¢ÉúÁËÅöײ¡±flags & CollisionFlags. CollidedNone¡±·µ»Ø1 CollisionFlag.CollidedSides£ºËÄÖÜ·¢ÉúÁËÅöײ¡±flags & CollisionFlags. CollidedSides¡±·µ»Ø1 CollisionFlag.CollidedAbove£º¶¥¶Ë·¢ÉúÁËÅöײ¡±flags & CollisionFlags. CollidedAbove¡±·µ»Ø1 8£©@script RequireComponent(CharacterController); //unity×Ô¶¯Ìí¼Ó½ÇÉ«¿ØÖÆÆ÷
Î塢Сµº¼ÌÐø´´½¨
1. ·Ö¸î¶¯»£¬·Ö¸î¿ªÃÅ¡¢¹ØÃÅ
1£©µã»÷Ä£ÐÍ?Animations£¨¶¯»£©
2£©°´¡°+¡±½øÐж¯»µÄÌí¼Ó£¬ÔÚ¶¯»µÄÖ¡ÉϽØÈ¡¶¯»²¢ÏàÓ¦±£´æ
3£©µã»÷Ó¦ÓÃ
4£©Ëõ·Å¹¤¾ß£ºÄ£ÐÍ?Model?Scale Factor=1.5 2. ÈçºÎ½«3D maxÄ£Ð͵¼ÈëUnity3DÖÐ
3. ½»»¥£º½»»¥¾ÍÊÇÖ¸Íæ¼ÒÓëÍæ¼ÒÖ®¼ä£¬Íæ¼ÒÓëÎïÌ壬ÎïÌåÓëÎïÌåµÄÏ໥½»Á÷£¬Ï໥½»Á÷µÄÐÅÏ¢¡£
4. Íø¸ñÅöײÆ÷ËäÈ»ºÜ·ûºÏÎïÌ壬µ«ÊǶÔ×ÊÔ´µÄÏûºÄÌØ±ð¶à£¬Òò´ËÐèҪΪÎïÌåÔö¼ÓÔÐÍÅöײÆ÷¡£
5. ½»»¥¹¦ÄÜ---Åöײ֮¼äµÄ½»»¥
1£©Mesh ColliderÍø¸ñÅöײÆ÷»áºÜÏûºÄ£¬ËùÒÔÌí¼ÓÆäËûÅöײÆ÷À´´´½¨Ò»ÖÖ¸üºÃµÄÓÎÏ·ÌåÑé¡£
2£©Ìí¼ÓÒ»¸öÆäËûÅöײÆ÷£¬¸øÃÅÌí¼ÓÒ»ÖÖºÐ×ÓÅöײÆ÷Box Collider
3£©ÎªÃÅÌí¼Ó±êÇ©¿ÉÒÔÔڽű¾ÖÐʹÓÃÃÅ
4£©¸øÃÅÌí¼Ó¸ÕÌ壬ȡÏûÃÅʹÓÃÖØÁ¦£¬¹´Ñ¡Ê¹Óö¯Á¦Ñ§£¬ÃÅ¿ÉÒÔ²úÉúÔ˶¯¡£
5£©¸øÃÅÌí¼Ó¿ªÃÅÉùºÍ¹ØÃÅÉù£¬ÎªÃÅÌí¼ÓÒôƵ×é¼þ¡£È¡Ïû¶¯»µÄ×Ô¶¯²¥·ÅÉùÒôÑ¡Ïî¡£ ¢Ùfunction OnControllerColliderHit(hit:ControllerColliderHit){} //¿ØÖÆÆ÷ÅöײÆ÷¡ª¹¦ÄÜ£º¼ì²â½ÇÉ«¿ØÖÆÆ÷ÓëÆäËûÅöײÆ÷µÄÅöײ£¬hit?µ±½ÇÉ«¿ØÖÆÆ÷ÓëÆäËûÓÎÏ·ÎïÌå·¢ÉúÅöײ£¬ÎïÌåµÄÐÅÏ¢ºÍÅöײµÄÐÅÏ¢±£´æÔÚhitÖС£Í¨¹ýhit·ÃÎÊÅöײÎïÌå¡£ ¢Ú´´½¨¿ªÃÅ/¹ØÃź¯Êý£º
function opendoor(door:GameObject){
//µ÷ÓÃÃÅÉϵÄÒôƵ×é¼þ²¥·ÅÒ»´Î¿ªÃÅÉùÒô doorisopen = true;
door.gameObject.audio.PlayOneShot(door_open_sound); //¿ªÃŶ¯»£¬¶¯»ÔÚÃŵĸ¸ÌåÄ£ÐÍÉÏ
door.transform.parent.animation.Play(\¢Û¼ÆÊ±¹ØÃÅ£º function Update(){ if(doorisopen){ }
}
//´ÓÉÏÒ»Ö¡µ½µ±Ç°Ò»Ö¡Ëù¾¹ýµÄʱ¼ä doortimer += Time.deltaTime; if(doortimer >door_open_time){ }
shutdoor(currentdoor.gameObject); doortimer = 0.0;
¢ÜÓÅ»¯´úÂ룺ʵÏÖ¹¦ÄÜdoorcheck?ÃŵÄ״̬, a_clip?²¥·ÅÒôƵ,anim_name?²¥·Å¶¯
»,thisdoor?ÃÅ
function door(doorcheck:Boolean,a_clip:AudioClip,anim_name:String,thisdoor:GameObject){} ÓÅ»¯Ö®ºóµÄº¯Êý£º
1. ¹âÏßͶÉä-Physics.Raycast£¨12ÔÂ30£©
ͨ¹ý¹âÏßͶÉäÃüÁîÀ´ÊµÏÖ×Ô¶¯¿ª¹ØÃŵÄЧ¹û
¢Ù.hysics.Raycast(transform.position,transform.forward,hit,3);//transform.position£º½ÇÉ«¿ØÖÆÆ÷µÄλÖã¬transform.forward£ºÇ°½øµÄ·½Ïò¡¢zÖá·½Ïò£¬hit£ºÓë½ÇÉ«ÅöײÆ÷µÄÅöײÐÅÏ¢¡£3£ºÍ¶ÉäµÄ¹âÏß³¤¶ÈΪ3Ãס£¢Ú¡¢Èç¹ûÅöײhit.collider.gameObject.tag==¡±playerDoor¡±; //Óë¹âÏß·¢ÉúÅöײµÄ±ãÇ©ÊÇ·ñΪcurrentdoor:GameObject=hit.collider.gameObject;//
palyerDoor¡£¢Û¡¢var
2. ÎïÌå½»»¥µÄ·½Ê½--Åöײ¼ì²âµÄ·½Ê½£º½ÇÉ«¿ØÖÆÆ÷×ÔÉíµÄÅöײº¯Êý£¬¹âÏßͶÉ䣬´¥·¢Æ÷ 3. ´¥·¢Æ÷Åöײ£º1£©¸ø·¿×ÓÌí¼ÓºÐ×ÓÅöײÆ÷£¬Ñ¡Ôñ´¥·¢ÅöײÆ÷Ö»Ðè¹´Ñ¡Is Trigger¡£2£©°´
סshift¼ü¿ÉÒÔµ÷ÕûÅöײÆ÷¡£3£©±àд½Å±¾£¬º¯ÊýÃû£ºOnTriggerEnter¡ªµ±ÓÐÆäËûÅöײÆ÷½øÈë´¥·¢ÇøÓòʱִÐд˺¯Êý£¬²ÎÊýcol:Collider¡ª½øÈë´¥·¢ÇøÓòµÄ´¥·¢Æ÷µÄÐÅÏ¢±£´æ¡£
4£©ºÃ´¦£º¿ÉÒ԰ѽű¾·ÖÉ¢ÔÚÆäËûÎïÌåÉÏ£¬¼õÉÙ½ÇÉ«ÉϵĽű¾¡£
ÃÅÉϵĽű¾£º
4. ÎïÌå½»»¥µÄÏà¹Ø£º
1£©µ±½ÇÉ«¿ØÖÆÆ÷µÄ½Å±¾ÊÇÅöײ½Å±¾Ê±£¬ÎïÌåµÄºÐ×ÓÅöײÆ÷Ñ¡ÖÐIs Trigger£¨´¥·¢£©£¬
½ÇÉ«¿ØÖÆÆ÷´©¹ýÎïÌå 2£©µ±½ÇÉ«¿ØÖÆÆ÷µÄ½Å±¾ÊǹâÏßͶӰ½Å±¾Ê±£¬ÎÞÂÛÊÇ·ñÑ¡ÖÐIs Trigger¶¼»áÏÔʾÅöײЧ¹û¡£ 3£©Á½¸öÆÕͨÅöײÆ÷ÆðÎïÌåÖ®¼äµÄÅöײ¡ªOnCollisitionEntion¡£ Áù¡¢ÊÕ¼¯ÎïÌåºÍÖÆ×÷HUD---ÔÚÆÁÄ»ÉÏÏÔʾÐÅÏ¢