Unity¤Ë´ØÏ¢¤¹¤ëµ­»ö¤Ç¤¹

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;
    }
}

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

Menu



´ðÁÃ

µ»½Ñ/Ãμ±(¼ÂÁõÎã)

3D¥¢¥¯¥·¥ç¥ó¥²¡¼¥à

2D¤ª¤Ï¤¸¤­¥²¡¼¥à(ȯŸÊÔ)

2D¶¯À©²£¥¹¥¯¥í¡¼¥ë¥¢¥¯¥·¥ç¥ó(ȯŸÊÔ)

2D¥¿¥Ã¥×¥·¥å¡¼¥Æ¥£¥ó¥°(³ÈÄ¥ÊÔ)

¥ì¡¼¥¹¥²¡¼¥à(È´¿è)

2DÊüÃÖ¥²¡¼¥à(ȯŸÊÔ)

3D¥ì¡¼¥ë¥¬¥ó¥·¥å¡¼¥Æ¥£¥ó¥°(±þÍÑÊÔ)

3Dæ½Ð¥²¡¼¥à(È´¿è)

2D¥ê¥¢¥ë¥¿¥¤¥à¥¹¥È¥é¥Æ¥¸¡¼

3D¥¿¥Ã¥×¥¢¥¯¥·¥ç¥ó(NavMeshAgent »ÈÍÑ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥«¥¨¥ë¤Î°Ù¤Ë¡Á¡¢¥Ü¥³¥¹¥«¥¦¥©¡¼¥ºÉ÷)

VideoPlayer ¥¤¥Ù¥ó¥ÈϢư¤Î¼ÂÁõÎã

VideoPlayer ¥ê¥¹¥ÈÆ⤫¤é¥à¡¼¥Ó¡¼ºÆÀ¸¤Î¼ÂÁõÎã(ȯŸ)

AR ²èÁüÉÕ¤­¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤Î¼ÂÁõÎã

AR ¥ê¥¹¥ÈÆ⤫¤éÀ¸À®¤Î¼ÂÁõÎã(ȯŸ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥µ¥Ð¥¤¥Ð¡¼É÷)

private



¤³¤Î¥µ¥¤¥ÈÆâ¤ÎºîÉʤϥæ¥Ë¥Æ¥£¤Á¤ã¤ó¥é¥¤¥»¥ó¥¹¾ò¹à¤Î¸µ¤ËÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹