ºÇ½ª¹¹¿·¡§ orika_ex_miyako 2019ǯ06·î29Æü(ÅÚ) 00:58:30ÍúÎò
using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> /// ¥Æ¥¹¥ÈÍÑ¥¯¥é¥¹ /// ¥¯¥é¥¹¤È¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¼èÆÀ¡¢¥ª¥ó¡¿¥ª¥Õ¡¢ÍøÍÑÊýË¡¤Ë¤Ä¤¤¤Æ /// </summary> public class Test : MonoBehaviour { [SerializeField,Header("¥³¥é¥¤¥À¡¼¡ÊÀÜ¿¨È½Äê¡Ë¤Î¥ª¥ó¥ª¥ÕÍÑ")] public BoxCollider boxCollider; [SerializeField, Header("¥ì¥ó¥À¥é¡¼¡ÊÉÁ²è¡Ë¤Î¥ª¥ó¥ª¥ÕÍÑ")] public MeshRenderer meshRenderer; [SerializeField, Header("¥Þ¥Æ¥ê¥¢¥ë¡Ê¿§¡Ë¤ÎÀßÄêÍÑ")] public Material material; [SerializeField,Range(0,2),Header("Êѹ¹¤¹¤ë¿§¤ÎÀßÄêÃÍ")] public int colorNumber; [SerializeField, Header("Plane¤«¤É¤¦¤«¤ÎȽÄêÍÑ true¤Ê¤éPlane")] public bool isPlaneFlag; private bool isRigidGet; // »ØÄꤷ¤¿¾ò·ï(¤³¤³¤Ç¤ÏRigidBody¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò»ý¤Ã¤Æ¤¤¤ë)¤«¤É¤¦¤«¤òȽÄꤹ¤ë¥Õ¥é¥° [SerializeField,Header("²óž¤µ¤»¤ë¼´¤È²óž¤µ¤»¤ë²ó¿ô")] public int x; public int y; public int z; void Start() { // ¤³¤Î¥¯¥é¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤¬Plane¤«¤É¤¦¤«È½Äꤷ¡¢Ê¬´ô¤µ¤»¤ë if (isPlaneFlag) { // isPlaneFlag == true // Plane¤Ê¤é¤³¤Á¤é¤Î¥á¥½¥Ã¥É¤ò¼Â¹Ô // °ú¿ô¤È¤·¤ÆcolorNumber¤È¤¤¤¦int·¿¤Î¿ôÃͤòÅϤ·¤Æ¤¤¤ë ChangeMatColor(colorNumber); } else { // Plane¤Ç¤Ï¤Ê¤¤(Cube)¤Ê¤é¡¢¤³¤Á¤é¤Î¥á¥½¥Ã¥É¤ò¼Â¹Ô // °ú¿ô¤È¤·¤ÆColor.blue¤È¤¤¤¦¡¢Color·¿¤Î¿§¾ðÊó¤òÅϤ·¤Æ¤¤¤ë SetMatColor(Color.blue); } } /// <summary> /// ¾ï¤ËÆ°¤¤¤Æ¤¤¤ë¥á¥½¥Ã¥É¡£¤³¤³¤Ç¤Ï¥¡¼¥Ü¡¼¥ÉÆþÎϤò´Æ»ë¤·¡¢¾ï¤ËÆþÎϤò¼õ¤±ÉÕ¤±¤ë¾õÂ֤ˤ¹¤ë /// ifʸ¤Ç¤¢¤ë¤Î¤Ï¡¢Âбþ¤¹¤ë¥¡¼ÆþÎϤ¬¤¢¤Ã¤¿¾ì¹ç¤Î¤ß½èÍý¤ò¼Â¹Ô¤¹¤ë¤¿¤á /// ¾ò·ï¤¬¤Ê¤¤¤È¾ï¤ËÆ°¤¤¤Æ¤·¤Þ¤¦ /// </summary> void Update() { // ¥Ü¥¿¥ó¤ò²¡¤¹ÅÙ¤ËBoxCollider¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾õÂÖ¤ò¥ª¥ó¡¦¥ª¥ÕÀÚ¤êÂؤ¨¤ë // ¥ª¥ó¤Ê¤é¤½¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï͸ú¡¡¥ª¥Õ¤Ê¤é̵¸ú // Áàºî¤·¤¿¤¤¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬ÂåÆþ¤µ¤ì¤Æ¤¤¤ëÊÑ¿ô¤ò»È¤¦ =¡¡¥¢¥¯¥»¥¹¤Ç¤¤ë if (Input.GetKeyDown(KeyCode.A)) { // [ÊÑ¿ô̾.enabled]¤Ç¸½ºß¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾õÂÖ¤ò³Îǧ¤Ç¤¤ë¡£true¤Ê¤é¥ª¥ó¤Î¾õÂÖ if (boxCollider.enabled == true) { // ¥ª¥Õ¤ËÀÚ¤êÂؤ¨¤ë boxCollider.enabled = false; } else { // if¤Î¾ò·ï¤Ç¤Ê¤¤¤Ê¤é¡¢¤³¤Á¤é¤Î½èÍý¤ò¼Â¹Ô = false¤Î¾ì¹ç boxCollider.enabled = true; } // 1¹Ô¤Ç½ñ¤¯¾ì¹ç //boxCollider.enabled = !boxCollider.enabled; } // ¥Ü¥¿¥ó¤ò²¡¤¹ÅÙ¤ËBoxCollider¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î»ý¤ÄIsTrigger¥×¥í¥Ñ¥Æ¥£¤Î¥ª¥ó¡¦¥ª¥Õ¤òÀÚ¤êÂؤ¨¤ë if (Input.GetKeyDown(KeyCode.S)) { if (!boxCollider.isTrigger) { // boxCollider.isTrigger == false¤ÈƱ¤¸ // ¥ª¥Õ¤Ê¤é¥ª¥ó¤Ë¤¹¤ë boxCollider.isTrigger = true; } else { // ¥ª¥ó¤Ê¤é¥ª¥Õ¤Ë¤¹¤ë // if-elseʸ¤Ê¤Î¤Ç¡¢É¬¤º¤É¤Á¤é¤«¤Îʬ´ô¤ËÆþ¤ë boxCollider.isTrigger = false; } } // ¥Ü¥¿¥ó¤ò²¡¤¹ÅÙ¤ËMeshRenderer¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥ª¥ó¡¦¥ª¥Õ¤òÀÚ¤êÂؤ¨¤ë if (Input.GetKeyDown(KeyCode.D)) { meshRenderer.enabled = !meshRenderer.enabled; } // ¥Ü¥¿¥ó¤ò²¡¤¹ÅÙ¤ËMaterial¤Î¿§¤òÊѹ¹¤¹¤ë if (Input.GetKeyDown(KeyCode.F)) { // ¤³¤Î¥¯¥é¥¹¤Î»ý¤Ä¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¼Â¹Ô¤¹¤ë // °ú¿ô¤È¤·¤ÆcolorNumber¤È¤¤¤¦int·¿¤Î¿ôÃͤòÅϤ¹ ChangeMatColor(colorNumber); } // ¥Ü¥¿¥ó¤ò²¡¤·¤¿¤È¤ if (Input.GetKeyDown(KeyCode.G)) { // isPlaneFlag¤¬false¤Ç¤¢¤ê¡¢¤«¤ÄisRigidGet¤¬false¤Ç¤¢¤ë¾ì¹ç if (!isPlaneFlag && !isRigidGet) { // isPlaneFlag == false && isRigidGet == false // ¤³¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¿·¤·¤¯RigidBody¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄɲ乤ë gameObject.AddComponent<Rigidbody>(); // RigidBody¤ò»ý¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î¥Õ¥é¥°¤ò¥ª¥ó¤Ë¤·¡¢»ý¤Ã¤Æ¤¤¤ë¾õÂ֤ˤ¹¤ë isRigidGet = true; } if (isRigidGet) { // isRigidGet == true // ¤¹¤Ç¤ËRigidBody¤òÄɲ䷤Ƥ¤¤ë¾õÂ֤Ǥ¢¤ë¾ì¹ç // RigidBody·¿¤ÎÊÑ¿ôrb¤òÀë¸À¤·¡¢RigidBody¤ò¼èÆÀ¤·¤Æ¥¢¥¯¥»¥¹¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë Rigidbody rb = GetComponent<Rigidbody>(); // RigidBody¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î»ý¤ÄIsKinematic¥×¥í¥Ñ¥Æ¥£¤Î¾õÂÖ¤ò¸«¤Æ¡¢¥ª¥ó¡¦¥ª¥Õ¤òÀÚ¤êÂؤ¨¤ë if (!rb.isKinematic) { rb.isKinematic = true; } else { rb.isKinematic = false; } } } // ¥Ü¥¿¥ó¤ò²¡¤·¤¿¤È¤ if (Input.GetKeyDown(KeyCode.H)) { // isRigidGet¤¬true¤Ê¤é = RigidBody¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò»ý¤Ã¤Æ¤¤¤ë¤Ê¤é if (isRigidGet) { // RigidBody¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òºï½ü¤¹¤ë Destroy(GetComponent<Rigidbody>()); // ½êͥե饰¤òfalse¤Ë¤·¡¢RigidBody¥³¥ó¥Ý¡¼¥Í¥ó¥È»ý¤Ã¤Æ¤¤¤Ê¤¤¾õÂ֤ˤ¹¤ë isRigidGet = false; // Íî²¼¤·¤Æ¤¤¤ëCube¤Î°ÌÃÖ¤ò½é´ü°ÌÃÖ¤ËÌ᤹ float pos = 3.0f; transform.position = new Vector3(transform.position.x,pos,transform.position.z); } } } /// <summary> /// ¥Þ¥Æ¥ê¥¢¥ë¤Î¿§¤Î½é´üÀßÄê½èÍý /// </summary> /// <param name="argumentColor"></param> private void SetMatColor(Color argumentColor) { // °ú¿ô¤È¤·¤ÆÅϤµ¤ì¤¿argumentColor¤ò»È¤¤¿§¤òÊѹ¹¡Ê½é´üÀßÄê¡Ë¤¹¤ë // ÀßÄê¤Ë¤ÏMaterial·¿¤ÎÊÑ¿ômaterial¤Î»ý¤Äcolor¤Ë¥¢¥¯¥»¥¹¤¹¤ë material.color = argumentColor; colorNumber = 1; } /// <summary> /// ¥Þ¥Æ¥ê¥¢¥ë¤Î¿§¤òÊѤ¨¤ë½èÍý /// public½¤¾þ»Ò¤Ê¤Î¤Ç¡¢Â¾¤Î¥¯¥é¥¹¤«¤é¤Ç¤â¤³¤Î¥á¥½¥Ã¥É¤ò¼Â¹Ô¤Ç¤¤ë /// </summary> /// <param name="argumentColorNumber"></param> public void ChangeMatColor(int argumentColorNumber) { // °ú¿ô¤È¤·¤ÆÅϤµ¤ì¤¿argumentColorNumber¤ËÆþ¤Ã¤Æ¤ëÈÖ¹æ¤ò»È¤¤¡¢Ê¬´ô¤Ë¤è¤ê¿§¤òÀßÄꤹ¤ë // ¤³¤³¤Ç¤âmaterial.color¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤Ç¿§¤òÊѹ¹¤¹¤ë // switchʸ¤Ï¤¤¤º¤ì¤«¤Îcase¤ËÆþ¤ë¤È½ªÎ»¤¹¤ë( = break¤ÇÈ´¤±¤Æ¤¤¤ë) switch (argumentColorNumber) { case 0: material.color = Color.blue; break; case 1: material.color = Color.green; break; case 2: material.color = Color.red; break; } // ¿§¤ÎÈÖ¹æ¤ò1¤º¤Ä²Ã»»¤¹¤ë = ¼¡²ó°Ê¹ß¡¢Ê̤Îʬ´ô¤ËÆþ¤ë¤è¤¦¤Ë¤¹¤ë colorNumber++; // ¿§¤ÎÀßÄêÃͤÏ2¤Þ¤Ç¤Ê¤Î¤Ç¡¢3°Ê¾å¤Î¿ôÃͤˤʤ俤é0¤ËÌ᤹½èÍý¤òÆþ¤ì¤Æ¤ª¤¯ if(colorNumber >= 3) { colorNumber = 0; } Debug.Log(colorNumber); } /// <summary> /// Cube¤ò²óž¤µ¤»¤ë½èÍý /// </summary> /// <param name="argumentEulerAngle"></param> ²óž¤µ¤»¤ë³ÑÅÙ /// <param name="argumentAxis"></param> ²óž¤µ¤»¤ë¼´¡¡ /// <param name="isReverseFlag"></param> Àµ²óž¤«µÕ²óž¤«¤É¤¦¤«¤Î¥Õ¥é¥° ´ðËܤÏfalse¤ÇÀµ²óž public void RotateCube(float argumentEulerAngle, int argumentAxis, bool isReverseFlag = false) { // ²óž¤µ¤»¤¿¤¤¼´¤Î¾ðÊó¤òrotationPos¤ËÂåÆþ Quaternion rotationPos = transform.rotation; Debug.Log(transform.rotation); // µÕ²óž¤µ¤»¤ë¥Õ¥é¥°¤¬ON(true)¤Ê¤é¡¢²óž¤µ¤»¤ë¸þ¤¤òµÕ¤Ë¤¹¤ë if (isReverseFlag) { argumentEulerAngle = -argumentEulerAngle; Debug.Log("Reverse"); } // ²óž¤µ¤»¤ë¼´¤ò·è¤á¤ëʬ´ô ¤¤¤º¤ì¤«¤Îcase¤ËÆþ¤ë // ¼´¤´¤È¤Ë²óž¤·¤¿²ó¿ô¤¬¥«¥¦¥ó¥È¤µ¤ì¤ë switch (argumentAxis) { case 0: // x¼´ x++; rotationPos.x = argumentEulerAngle * x; break; case 1: // y¼´ y++; rotationPos.y = argumentEulerAngle * y; break; case 2: // z¼´ z++; rotationPos.z = argumentEulerAngle * z; break; } // ¾åµ¤Îʬ´ô¤Ç·èÄꤷ¤¿³ÑÅ٤Dz󞤵¤»¤ë // ʬ´ô°Ê³°¤Î£²¤Ä¤Î¼´¤Ï¸µ¡¹¤Î¿ôÃͤ¬¤½¤Î¤Þ¤ÞºÆÅÙÆþ¤ë transform.rotation = Quaternion.Euler(rotationPos.x, rotationPos.y, rotationPos.z); Debug.Log(transform.rotation); } /// <summary> /// Cube¤Î²óž¤ò½é´ü¾õÂÖ¤ËÌ᤹½èÍý /// </summary> public void ResetRotate() { // identity¤Ï¥²¡¼¥à³«»Ï»þ¡ÊÀ¸À®»þ¡Ë¤Î²óž¼´¤Î¾ðÊó¤Î¾õÂÖ transform.rotation = Quaternion.identity; //transform.rotation = Quaternion.Euler(0,0,0); } /// <summary> /// Cube¤Î³Æ²óž¼´¤Î²óž²ó¿ô¤ò0¤ËÌ᤹½èÍý /// </summary> /// <param name="argumentCount"></param> public void ResetAxisCount(int argumentCount) { x = argumentCount; y = argumentCount; z = argumentCount; } }
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- Áí¹ç
¥³¥á¥ó¥È¤ò¤«¤¯