青先生

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

【1】学习中的使用的类

1.Rigidbody:通过物理模拟控制物体的位置。

本例中使用的方法: void AddForce(Vector3 force, ForceMode mode = ForceMode.Force);给刚体施加一个力

2.Animator:用于控制Mecanim动画系统的界面。

本例中使用的方法:SetBool(string name, bool value);

设置给定布尔参数的值。

使用Animator.SetBool 通过脚本将布尔值传递给Animator Controller

3. Debug:包含在开发游戏时简化调试的方法的类。

本例中使用的方法:void DrawRay(Vector3 start, Vector3 dir, Color color = Color.white,float duration = 0.0f,bool depthTest = true);

在世界坐标中从起点沿着方向和特定距离绘制一条有颜色的线。

4.Ray:射线的表示。

构造方法:RayVector3 origin, Vector3 direction创建一条射线从origin沿direction

 public bool interacting;
    public Rigidbody s1;
    public Transform s2;
    private Animator anim;
    // Use this for initialization
    void Start ()
    {
        anim = GetComponent<Animator>();

    }    
    // Update is called once per frame
    void Update () {
        if (interacting&&Input.GetKeyDown(KeyCode.Space))
        {anim.SetBool("openChest",true);
        Debug.Log(1);
            Rigidbody s3;
            s3 = Instantiate(s1, s2.position, s2.rotation) as Rigidbody;
            s3.AddForce(s2.up * 3);
        }       
    }
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "Player")
        {
            interacting = true;
        }
    }
    void OnTriggerExit(Collider other)
    {
        if (other.gameObject.tag == "Player")
        {
            interacting = false;
        }
    }
public  CapsuleCollider player;
    private GameObject ememy;
    private Ray ray;
    private RaycastHit hit;
    public float rayDistance=4f;
    private Enemy EnemyScript;   
    // Use this for initialization
    void Start ()
    {
        player = GetComponent<CapsuleCollider>();
    }
    void Update ()
    {
        float inputHorizontal = Input.GetAxis("Horizontal");
        float inputVertical = Input.GetAxis("Vertical");
        Vector3 s = new Vector3(inputHorizontal,0f,inputVertical);
        transform.Translate(s*Time.deltaTime*5);
        ray=new Ray(transform.position+new Vector3(0f,player.center.y,0f),transform.forward);
      Debug.DrawRay(ray.origin,ray.direction*rayDistance,Color.red);
        if (Physics.Raycast(ray,out hit))
        {
            if (hit.distance < rayDistance)
            {
                if (hit.collider.gameObject.tag == "Enemy")
                {
                    Debug.Log("发现敌人");                   
                }
            }
        }      
    }
    void OnCollisionEnter(Collision collision)
    {       
        if (collision.gameObject.tag=="Enemy")
        {
            EnemyScript = collision.gameObject.GetComponent<Enemy>();
            EnemyScript.blood -= 1;         
        }
    }

 

posted on 2019-02-14 08:14  青先生  阅读(435)  评论(0编辑  收藏  举报