【持剑勇士】编程基础小结

【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:射线的表示。

构造方法:Ray(Vector3 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  青先生 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/Mr-QingZi/p/10372645.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值